西瓜書第一章習(xí)題

1.1 表1.1中若只包含編號(hào)為1和4的兩個(gè)樣例囊咏,試給出相應(yīng)的版本空間。

解:對(duì)應(yīng)的樣本數(shù)據(jù)集如下

image

色澤有3(青綠,烏黑梅割,* )種取值霜第,根蒂有3(蜷縮,稍蜷户辞,* )種取值泌类,敲聲3(濁響,沉悶底燎,* )種刃榨,那么假設(shè)規(guī)模一共有

3*3*3+1(考慮空集),28種

對(duì)應(yīng)的版本空間為7種

分別為

1.色澤=青綠 根蒂=蜷縮 敲聲=濁響

2.色澤=青綠 根蒂=蜷縮 敲聲= *

3.色澤=青綠 根蒂=* 敲聲= 濁響

4.色澤= * 根蒂= 蜷縮 敲聲= 濁響

5.色澤= * 根蒂= * 敲聲= 濁響

6.色澤= * 根蒂= 蜷縮 敲聲= *

7.色澤= 青綠 根蒂= * 敲聲= *

1.2 與使用單個(gè)合取式來進(jìn)行假設(shè)表示相比双仍,使用“析合范式”將使得假設(shè)空間具有更強(qiáng)的表示能力枢希。

例如:
好瓜←→((色澤=)∧(根蒂=蜷縮)∧(敲聲=))∨((色澤=烏黑)∧(根蒂=*)∧(敲聲=沉悶))會(huì)把“((色澤=青綠)∧(根蒂=蜷縮)∧(敲聲=清脆))”以及“((色澤=烏黑)∧(根蒂=硬挺)∧(敲聲=沉悶))”都分類為“好瓜”。若使用最多包含k個(gè)合取式的析合范式來表達(dá)表1.1西瓜分類問題的假設(shè)空間朱沃,試估算共有多少種可能的假設(shè)苞轿。

解:西瓜的三個(gè)不同屬性的特征分別記為(A1,A2),(B1,B2,B3),(C1,C2,C3),這樣一共有2x3x3,18種不同的組合为流,如果將屬性泛化考慮 進(jìn)去呕屎,(A1,A2让簿,* ),(B1,B2,B3敬察,* ),(C1,C2,C3,* )那么一共就有3x4x4,48種不同的組合尔当。

48種情況分別包括

基本組合:18種

一個(gè)屬性泛化假設(shè):2x3+3x3+2x3,21種

兩種屬性泛化假設(shè):2+3+3莲祸,8種

三個(gè)屬性泛化假設(shè):1種

如果不考慮冗余則一共有 \sum_{i=1}^{48} C_{48}^i = 2^{48} -1
但是書本中提醒了還要考慮冗余情況,情況就沒有那么簡單了椭迎。

首先我們可以很輕松確定k的上界锐帜,k的最大取值為18,能表達(dá)最小的假設(shè)空間為18種基本組合畜号,如果加入第19種的話缴阎,那么必然會(huì)產(chǎn)生表達(dá)冗余。因此k的取值范圍為【1简软,18】

考慮最極端也最簡單的情況蛮拔,當(dāng)k=1時(shí),相當(dāng)于在48個(gè)種排列組合取一種痹升,必然不會(huì)有冗余的考慮即

k=1時(shí)建炫,有48種

k=18時(shí),有1種

中間的2~17的取值范圍考慮起來會(huì)相當(dāng)復(fù)雜疼蛾,一種樸素的思想就算用計(jì)算機(jī)暴力迭代肛跌,遍歷所有的排列組合,然后判斷他們是否冗余。但是在計(jì)算機(jī)表達(dá)上也是有一定的轉(zhuǎn)換

一 衍慎、首先構(gòu)造一個(gè)18x48的矩陣來表達(dá)數(shù)據(jù)转唉,比如

100000000000000000 表示(青綠,蜷縮西饵,濁響)

111111111111111111 表示 ( * 酝掩, * ,*)

二眷柔、用itertools.combinations方法放回所有的排列組合迭代器

三期虾、將每一種迭代結(jié)果相加(析取運(yùn)算),存放在一個(gè)數(shù)組中驯嘱,該數(shù)組的作用相當(dāng)于一個(gè)set镶苞,不允許出現(xiàn)重復(fù)的元素

代碼

import itertools 
import time
 
 
#將數(shù)存儲(chǔ)為數(shù)組
def method(value):
    # 將字符串變成數(shù)字列表,使其具有數(shù)字加法運(yùn)算
    result = []
    for i in range(len(value)):
        result.append(eval(value[i]))
    return result
 
#用類表示編碼鞠评,并定義重載的運(yùn)算符 + 為析取
class WMcode:
    val  = ''
    len  = 0
    def __init__(self, strv):
        self.val = method(strv)
    def __add__(self,other):    #析取運(yùn)算
        strv = [] 
        for i in range(len(self.val)):
            addr = self.val[i]+other.val[i]
            if addr >= 2:
                addr = 1
            strv.append(str(addr))
        return WMcode(strv)
    
#對(duì)48中假設(shè)進(jìn)行編碼
nodes = [WMcode('100000000000000000'),WMcode('010000000000000000'),WMcode('001000000000000000'),
         WMcode('000100000000000000'),WMcode('000010000000000000'),WMcode('000001000000000000'),
         WMcode('000000100000000000'),WMcode('000000010000000000'),WMcode('000000001000000000'),
         WMcode('000000000100000000'),WMcode('000000000010000000'),WMcode('000000000001000000'),
         WMcode('000000000000100000'),WMcode('000000000000010000'),WMcode('000000000000001000'),
         WMcode('000000000000000100'),WMcode('000000000000000010'),WMcode('000000000000000001'),
         WMcode('100000000100000000'),WMcode('010000000010000000'),WMcode('001000000001000000'),
         WMcode('000100000000100000'),WMcode('000010000000010000'),WMcode('000001000000001000'),
         WMcode('000000100000000100'),WMcode('000000010000000010'),WMcode('000000001000000001'),
         WMcode('111000000000000000'),WMcode('000111000000000000'),WMcode('000000111000000000'),
         WMcode('000000000111000000'),WMcode('000000000000111000'),WMcode('000000000000000111'),
         WMcode('100100100000000000'),WMcode('010010010000000000'),WMcode('001001001000000000'),
         WMcode('000000000100100100'),WMcode('000000000010010010'),WMcode('000000000001001001'),
         WMcode('111000000111000000'),WMcode('000111000000111000'),WMcode('000000111000000111'),
         WMcode('100100100100100100'),WMcode('010010010010010010'),WMcode('001001001001001001'),
         WMcode('111111111000000000'),WMcode('000000000111111111'),WMcode('111111111111111111')]
#           (青綠茂蚓,蜷縮,濁響) (青綠剃幌,稍蜷聋涨,濁響) (青綠,硬挺负乡,濁響)
#           (青綠牍白,蜷縮,清脆) (青綠抖棘,稍蜷茂腥,清脆) (青綠,硬挺切省,清脆)
#           (青綠最岗,蜷縮,沉悶) (青綠朝捆,稍蜷般渡,沉悶) (青綠,硬挺芙盘,沉悶)
#           (烏黑驯用,蜷縮,濁響) (烏黑何陆,稍蜷晨汹,濁響) (烏黑,硬挺贷盲,濁響)
#           (烏黑淘这,蜷縮剥扣,清脆) (烏黑,稍蜷铝穷,清脆) (烏黑钠怯,硬挺,清脆)
#           (烏黑曙聂,蜷縮晦炊,沉悶) (烏黑,稍蜷宁脊,沉悶) (烏黑断国,硬挺,沉悶)
#           (*榆苞,蜷縮稳衬,濁響) (*,稍蜷坐漏,濁響) (*薄疚,硬挺,濁響)
#           (*赊琳,蜷縮街夭,清脆) (*,稍蜷躏筏,清脆) (*板丽,硬挺,清脆)
#           (*寸士,蜷縮檐什,沉悶) (*碴卧,稍蜷弱卡,沉悶) (*,硬挺住册,沉悶)
#           (青綠婶博,*,濁響) (青綠荧飞,*凡人,清脆) (青綠,*叹阔,沉悶)
#           (烏黑挠轴,*,濁響) (烏黑耳幢,*岸晦,清脆) (烏黑欧啤,*,沉悶)
#           (青綠启上,蜷縮邢隧,*) (青綠,稍蜷冈在,*) (青綠倒慧,硬挺,*)
#           (烏黑包券,蜷縮纫谅,*) (烏黑,稍蜷溅固,*) (烏黑系宜,硬挺,*)
#           (*,*,濁響) (*,*,清脆) (*,*,沉悶)
#           (*,蜷縮发魄,*) (*,稍蜷,*) (*,硬挺,*)
#           (青綠盹牧,*,*) (烏黑励幼,*汰寓,*) (*,*苹粟,*)

#合取式數(shù)量k
for k in [1,2,3,4]:
    #存儲(chǔ)最終結(jié)果的集合A
    A = []
    time_start=time.time()               #開始計(jì)時(shí)
    comb = list(itertools.combinations(nodes,k))
    for i in range(len(comb)):
        WMadd = WMcode('000000000000000000')
        for j in range(k):
            WMadd = WMadd + comb[i][j]
        for allval in A:                       #若A中已經(jīng)存在當(dāng)前假設(shè)有滑,則舍去,因?yàn)檫@是亢余
            if WMadd.val == allval.val:
                break
        else:
            A.append(WMadd)
    time_end=time.time()                 #結(jié)束計(jì)時(shí)
    print("K={},一共有{}組合".format(str(k),str(len(A))))
    print('花費(fèi)時(shí)間',time_end-time_start)

最后由于這是一種規(guī)模是指數(shù)級(jí)的迭代嵌削,當(dāng)k規(guī)模大的時(shí)候就跑不動(dòng)了毛好,看圖,當(dāng)k的取值為4的時(shí)候就已經(jīng)需要10多分鐘了

image

1.3 若數(shù)據(jù)包含噪聲苛秕,則假設(shè)空間中有可能不存在與所有訓(xùn)練樣本都一致的假設(shè)肌访。在此情形下,試設(shè)計(jì)一種歸納偏好用于假設(shè)選擇艇劫。

解:歸納偏好以我個(gè)人的理解就是對(duì)于不同的算法而言吼驶,a算法的效果比b好,但是a的內(nèi)存開銷和時(shí)間開銷比b大店煞,如何評(píng)價(jià)對(duì)于同一個(gè)問題算法的好壞蟹演,就是看重視哪一方面,重視效果(準(zhǔn)確率)那么就認(rèn)為a好顷蟀,折中考慮效率就認(rèn)為b好酒请。因此歸納偏好在我理解就是最佳模型的基準(zhǔn)。

回到問題鸣个,對(duì)于此情況羞反,我認(rèn)為精度高的歸納偏好為假設(shè)選擇哮兰,即和訓(xùn)練樣本假設(shè)最接近的。

1.4 本章1.4節(jié)在論述“沒有免費(fèi)的午餐”定理時(shí)苟弛,默認(rèn)使用了“分類錯(cuò)誤率”作為性能度量來對(duì)分類器進(jìn)行評(píng)估喝滞。若換用其他性能度量l,試證明沒有免費(fèi)的午餐”定理仍成立。

解:證明:
在證明定理之前膏秫,先構(gòu)造一個(gè)引理:
引理1:在二分類問題下右遭,對(duì)任意性能度量指標(biāo)l,l(h(x)=f(x))+l(h(x)≠f(x))=A,Al(h(x)=f(x))+l(h(x)≠f(x))=A,A為某一常數(shù)缤削。
證:對(duì)于二分類問題窘哈,任意性能度量中的正確分類得分與錯(cuò)誤分類得分應(yīng)該是固定的。即:
l(0,0)=l(1,1),l(0,1)=l(1,0)

因此
l(0,0)+l(0,1)=l(1,1)+l(1,0)

設(shè)
l(0,0)+l(0,1)=l(1,1)+l(1,0)=A

即可得:
l(h(x)=f(x))+l(h(x)≠f(x))=A

證畢.
現(xiàn)在證明定理:

(https://blog.csdn.net/dicker6315/article/details/81265066)

1.5 試述機(jī)器學(xué)習(xí)能在互聯(lián)網(wǎng)搜索的哪些環(huán)節(jié)起作用

解:機(jī)器學(xué)習(xí)對(duì)搜索引擎可進(jìn)行的優(yōu)化

1.搜索引擎直接給出搜索的答案:這里用到神經(jīng)網(wǎng)絡(luò)亭敢,它可以通過分析大量數(shù)據(jù)從而完成特定的任務(wù)滚婉,如從相關(guān)網(wǎng)頁中獲取長句子和段落,然后提出有關(guān)問題答案的信息帅刀。
2.直接進(jìn)行圖片让腹、視頻(等多元數(shù)據(jù))的搜索:圖片的識(shí)別已經(jīng)是常見的技術(shù)了,那直接從視頻中提出信息呢扣溺?谷歌推出Video Intelligence API骇窍,不僅可以從視頻中提取特定的信息,還能總結(jié)視頻的脈絡(luò)锥余、記錄視頻中的場景腹纳,從而對(duì)視頻進(jìn)行準(zhǔn)確的分類。
3.更精準(zhǔn)的排序(也可成為「精準(zhǔn)營銷」的部分):如使用神經(jīng)網(wǎng)絡(luò)驱犹、決策樹等為基礎(chǔ)的網(wǎng)頁排序算法:RankNet, LambdaRank 和LambdaMART嘲恍。2015年,谷歌推出RankBrain雄驹,它可以選擇最適合當(dāng)前搜索類型的結(jié)果佃牛,相當(dāng)于為每個(gè)搜索都提供個(gè)性化的算法組合。
4.對(duì)用戶行為進(jìn)行綜合分析(如歷史搜索數(shù)據(jù)荠医、點(diǎn)擊模式吁脱、身份信息等進(jìn)行結(jié)構(gòu)化信息整合)
5.對(duì)垃圾網(wǎng)站的篩選(模式識(shí)別)


參考文章:

https://zhuanlan.zhihu.com/p/27900874

https://blog.csdn.net/qq_26371477/article/details/102292685

https://blog.csdn.net/dicker6315/article/details/81265066

https://zhuanlan.zhihu.com/p/44279394

代碼 :
https://gitee.com/wudinglang/MichineLearning

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末桑涎,一起剝皮案震驚了整個(gè)濱河市彬向,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌攻冷,老刑警劉巖娃胆,帶你破解...
    沈念sama閱讀 218,546評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異等曼,居然都是意外死亡里烦,警方通過查閱死者的電腦和手機(jī)凿蒜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來胁黑,“玉大人废封,你說我怎么就攤上這事∩フ海” “怎么了漂洋?”我有些...
    開封第一講書人閱讀 164,911評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長力喷。 經(jīng)常有香客問我刽漂,道長,這世上最難降的妖魔是什么弟孟? 我笑而不...
    開封第一講書人閱讀 58,737評(píng)論 1 294
  • 正文 為了忘掉前任贝咙,我火速辦了婚禮,結(jié)果婚禮上拂募,老公的妹妹穿的比我還像新娘庭猩。我一直安慰自己,他們只是感情好陈症,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,753評(píng)論 6 392
  • 文/花漫 我一把揭開白布眯娱。 她就那樣靜靜地躺著,像睡著了一般爬凑。 火紅的嫁衣襯著肌膚如雪徙缴。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,598評(píng)論 1 305
  • 那天嘁信,我揣著相機(jī)與錄音于样,去河邊找鬼。 笑死潘靖,一個(gè)胖子當(dāng)著我的面吹牛穿剖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播卦溢,決...
    沈念sama閱讀 40,338評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼糊余,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了单寂?” 一聲冷哼從身側(cè)響起贬芥,我...
    開封第一講書人閱讀 39,249評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎宣决,沒想到半個(gè)月后蘸劈,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,696評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡尊沸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,888評(píng)論 3 336
  • 正文 我和宋清朗相戀三年威沫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了贤惯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,013評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡棒掠,死狀恐怖孵构,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情烟很,我是刑警寧澤浦译,帶...
    沈念sama閱讀 35,731評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站溯职,受9級(jí)特大地震影響精盅,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜谜酒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,348評(píng)論 3 330
  • 文/蒙蒙 一叹俏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧僻族,春花似錦粘驰、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至度秘,卻和暖如春顶伞,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背剑梳。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評(píng)論 1 270
  • 我被黑心中介騙來泰國打工唆貌, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人垢乙。 一個(gè)月前我還...
    沈念sama閱讀 48,203評(píng)論 3 370
  • 正文 我出身青樓锨咙,卻偏偏與公主長得像,于是被迫代替她去往敵國和親追逮。 傳聞我的和親對(duì)象是個(gè)殘疾皇子酪刀,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,960評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容