Edit in JSFiddle

var viewModel = function() {
    var self = this;
    
    self.selectedOption = ko.observable("Option 2");
}

var vm = new viewModel();
ko.applyBindings(vm);
<div class="btn-group">
    <label class="btn btn-primary" data-bind="css: { 'active': selectedOption() === 'Option 1' }">
        <input type="radio" name="options" id="option1" data-bind="checked: selectedOption, checkedValue: 'Option 1'">Option 1
    </label>
    <label class="btn btn-primary" data-bind="css: { 'active': selectedOption() === 'Option 2' }">
        <input type="radio" name="options" id="option2" data-bind="checked: selectedOption, checkedValue: 'Option 2'">Option 2
    </label>
   <label class="btn btn-primary" data-bind="css: { 'active': selectedOption() === 'Option 3' }">
        <input type="radio" name="options" id="option3" data-bind="checked: selectedOption, checkedValue: 'Option 3'">Option 3
    </label>
</div>
<p>
    The Knockout view model value is: <span data-bind="text: selectedOption"></span>
</p>
body {
    padding: 15px;
}

label.btn > input[type='radio']
{
    display: none;
}