機(jī)器學(xué)習(xí)用途比較多撒穷,主要可以劃分為3類匣椰。
第一類是分類:可以用來進(jìn)行類型預(yù)測,比如是否是廣告郵件端礼,垃圾短信禽笑,花的種類,動物種類等蛤奥。
第二類是回歸:可以用來進(jìn)行數(shù)值預(yù)測佳镜。比如預(yù)測房價(jià),股票等凡桥。
第三類是聚類:用于劃分群體蟀伸。比如哪些是對這個(gè)商品的高意向群體,哪些是低意向的等缅刽。
機(jī)器學(xué)習(xí)之所以可以做到上面的這些事情啊掏,因?yàn)橛泻芏嗟臄?shù)據(jù)給他學(xué)習(xí),通過這些數(shù)據(jù)衰猛,它就可以總結(jié)出經(jīng)驗(yàn)來迟蜜,也就是所謂的模型,直白點(diǎn)說就是一個(gè)數(shù)學(xué)公式啡省。有了數(shù)學(xué)公式之后娜睛,再來預(yù)測分類是不是就很簡單了。
比如 告訴你一個(gè) 數(shù)學(xué)公式:y=2x-1卦睹,然后為你x=100的結(jié)果值是多少畦戒,帶進(jìn)去就可以算出來了,2*100-1=199结序。
今天就通過自己推到一個(gè)數(shù)學(xué)公式來理解一下機(jī)器學(xué)習(xí)是怎樣工作的兢交,具體的機(jī)器學(xué)習(xí)算法,是通過scikit-learn這個(gè)庫提供的笼痹,我只是拿來使用配喳。
下面就用 y = 2x-1這個(gè)公式作為案例酪穿。
獲取數(shù)據(jù)
首先需要有數(shù)據(jù)給我們訓(xùn)練,這里沒有實(shí)際數(shù)據(jù),只能自己造數(shù)據(jù)晴裹。
用matplotlib顯示圖形被济,通過圖表可以看出,我們造出來的數(shù)據(jù)是線性的涧团,其實(shí)就是y = 2x-1這個(gè)公式來的只磷。
前面的過程是主要為了獲得數(shù)據(jù),現(xiàn)在我們是不知道x和y的關(guān)系的泌绣。下面有一個(gè)表格钮追,里面的根據(jù)x,y的數(shù)據(jù)值,找到它們對應(yīng)的關(guān)系阿迈,從而推導(dǎo)出當(dāng)x=100時(shí)元媚,y等于多少?
因?yàn)槲覀冎浪鼈兊年P(guān)系是直線關(guān)系苗沧,通過解方程的方法是很簡單的刊棕,假設(shè)y=ax+b,列兩個(gè)方程就可以求出結(jié)果來了待逞。
如果不符合直線方程甥角,那我們可能就無法假設(shè)一個(gè)公式了,因?yàn)楣娇赡転閥=ax2+bx+c或者其它的冪函數(shù)识樱,指數(shù)函數(shù)嗤无,三角函數(shù)呢?這個(gè)問題這里就先不展開了怜庸,之后通過擬合來詳細(xì)探討這個(gè)問題当犯。( 擬合解釋:形象的說,擬合就是把平面上一系列的點(diǎn)休雌,用一條光滑的曲線連接起來。因?yàn)檫@條曲線有無數(shù)種可能肝断,從而有各種擬合方法杈曲。)
下面繼續(xù)剛才我們的問題,前面構(gòu)造的數(shù)據(jù)剛好是符合直線方程的胸懈,除了直接通過方程來解決担扑,還可以使用我們的機(jī)器學(xué)習(xí)中的線性回歸算法搞定。
訓(xùn)練模型
先準(zhǔn)備好數(shù)據(jù)趣钱,這里剛好是x,y涌献,x需要先轉(zhuǎn)換一下維度,之后放到線性模型里面首有,提供模型數(shù)據(jù)訓(xùn)練就可以得出模型的系數(shù)了燕垃。
上面的數(shù)據(jù)剛好是線性的枢劝,下面我們把數(shù)據(jù)手動改動一下,讓我們的y數(shù)據(jù)不按嚴(yán)格的線性規(guī)律卜壕,改完效果如下您旁。
現(xiàn)在如果還是用解方程的思路,可能就會出現(xiàn)帶入不同的數(shù)據(jù)轴捎,會得到不同的系數(shù)鹤盒,那到底那個(gè)更符合呢?
讓我們通過訓(xùn)練模型得出答案侦副。
模型訓(xùn)練出來了侦锯,下面通過這個(gè)模型去看看實(shí)際預(yù)測出的結(jié)果值和原來的對比一下。
再查看一下均方根誤差秦驯,總體誤差在1.158左右尺碰,還算是不錯(cuò)的。
通過這樣的方法汇竭,我們就可以查找出一堆數(shù)據(jù)的一個(gè)關(guān)系了葱蝗。有了這個(gè)模型,我們也可以去預(yù)測當(dāng)個(gè)數(shù)值或者未來數(shù)據(jù)的一個(gè)走勢了细燎。
上面的機(jī)器學(xué)習(xí)過程還不是很嚴(yán)謹(jǐn)两曼,并沒有將數(shù)據(jù)集劃分為訓(xùn)練集和測試集,正常的需要先劃分?jǐn)?shù)據(jù)集玻驻,一般按照7:3比例分成訓(xùn)練集和測試集悼凑,之所以要這樣是因?yàn)橛?xùn)練出模型后,需要去驗(yàn)證模型的好壞璧瞬,通過測試的結(jié)果與實(shí)際結(jié)果作比較户辫,可以根據(jù)需要決定是否再去調(diào)整模型。
(全文完)
長按二維碼嗤锉,加關(guān)注渔欢!葉子陪你玩
歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明出處瘟忱!
歡迎關(guān)注公眾微信號:葉子陪你玩編程
分享自己的python學(xué)習(xí)之路