1. 程式人生 > >機器學習【周志華】第一張緒論 答案python

機器學習【周志華】第一張緒論 答案python

機器學習已經看了挺長時間,一直在打醬油式的看。這次準備認真看並且做一下習題,程式碼實現。
第一張緒論有5道題。
1.根據表的編號1和4 兩個樣例,求相應的版本版本空間
  幾個簡單的解釋:
  假設空間: 所有假設組成的空間
  學習過程: 在所有假設空間中搜索想要的假設
  目標: 搜尋到與訓練集匹配的假設
  版本空間: 從假設空間剔除了與正例不一致的假設,可以看成是正例的最大泛化
  程式碼很簡單,沒有輸出list等內容,直接輸出在了python介面上
    data ={'色澤':['青綠','烏黑','else'],'根蒂':['蜷縮','稍蜷','else'],'敲聲':['濁響','沉悶','else']}
    ## else 作為泛化值
    for info in data['色澤']:
        for info1 in data['敲聲']:
            for info3 in data['根蒂']:
                if info == '烏黑' or info3 == '稍蜷' or info1 =='沉悶':
                    print('否',info,info1,info3)   #這裡可以不輸出
                else:
                    print('是',info,info1,info3)    # 這裡應該加一層判斷,如果三個值都是泛化值則不輸出,這裡包含了反例
2. 表中含有3個屬性
    考慮3個屬性都為泛化值,1 種結果
    考慮2個屬性為泛化值,2+3+3=8種結果
    考慮1個屬性為泛化值,2*3 + 2*3+3*3=21種結果
    不考慮泛化,單個合取式共有2*3*3=18種結果
當k=1 時,不重複的假設有1+8+21+18=48 
    假設泛化值和其他不重複