[ML]機(jī)器學(xué)習(xí)(machine learning)的入門之旅 -- 從kaggle談到線性回歸

背景

大學(xué)室友問我有沒有參加過kaggle薯鳍,我說(shuō)這是啥?(聽都沒聽過...)
他說(shuō)他最近在做一個(gè)關(guān)于bosch(博世)的工業(yè)數(shù)據(jù)預(yù)測(cè)問題咖气,問我有沒有興趣玩玩數(shù)據(jù)分析?
我一想挖滤,剛好最近也閑來(lái)無(wú)事崩溪,不如了解下...

前言

kaggle其實(shí)就是個(gè)數(shù)據(jù)分析/機(jī)器學(xué)習(xí)的比賽了,里面會(huì)有各種官方機(jī)構(gòu)或者無(wú)聊之人斩松,出各種題目伶唯,讓你做,然后弄個(gè)leaderboard(排行榜)惧盹,第一名或者前幾名獲得最終獎(jiǎng)金乳幸。 (國(guó)內(nèi)有個(gè)類似的比賽叫 天池, 基本就是阿里淘寶每年雙十一的用戶購(gòu)買欲預(yù)測(cè)或者商品推薦算法等)
所以钧椰,要參加kaggle粹断,就需要:

  1. 進(jìn)入官網(wǎng),注冊(cè)個(gè)kaggle的用戶嫡霞,所以請(qǐng)點(diǎn)擊這里
  2. 然后選擇個(gè)比賽瓶埋,比如如下:
    Santander Product Recommendation
    屏幕快照 2016-11-14 下午12.50.32.png
  3. 下載數(shù)據(jù)
    點(diǎn)此下載recommendation的數(shù)據(jù)
    屏幕快照 2016-11-14 下午12.52.05.png
  4. 分析數(shù)據(jù)
    ...
    這里就是你進(jìn)行各種數(shù)據(jù)分析,訓(xùn)練,建模悬赏,算法研究等的過程狡汉,下面會(huì)詳細(xì)講具體怎么玩.
    ...
  5. 完成+提交
    5.1 完成
    完成后將我們的預(yù)測(cè)數(shù)據(jù)生成sample_submission.csv里給的格式的數(shù)據(jù)(感覺是:官方準(zhǔn)備了答案模板娄徊,你照著涂滿就好)闽颇。
    5.2 提交
    提交前,首先要按流程寄锐,點(diǎn)擊統(tǒng)一他們的規(guī)則條款(如下):


    屏幕快照 2016-11-14 下午1.00.45.png

    然后進(jìn)入提交頁(yè)面兵多,提交就可以了.

  6. 提交后看一下你leaderboard的排名,如果排名太靠后橄仆,那就修改模型剩膘,調(diào)參數(shù),優(yōu)化算法.

以上盆顾,kaggle之旅結(jié)束

所以怠褐,參加kaggle很簡(jiǎn)單,看著步驟來(lái)就可以了您宪,無(wú)非麻煩的是題目是全英文的奈懒,如果理解有偏差,可能出現(xiàn)方向偏離的情況宪巨,不過一部分場(chǎng)景磷杏,他們會(huì)把題目驗(yàn)證的算法或者數(shù)學(xué)公式都會(huì)列出來(lái)。
真正麻煩的是當(dāng)你把幾十M的數(shù)據(jù)下載下來(lái)的時(shí)候捏卓,怎么處理才是關(guān)鍵极祸,繼續(xù)往下走...


機(jī)器學(xué)習(xí)

本人啥也不懂,以下內(nèi)容就是胡扯怠晴。如有錯(cuò)誤或不當(dāng)之處遥金,望指點(diǎn)糾正,多謝多謝.

1. 前言

1.1 從kaggle引入

我們拿到kaggle下載下來(lái)的數(shù)據(jù)會(huì)發(fā)現(xiàn)分為2類蒜田,test數(shù)據(jù)和train數(shù)據(jù). 機(jī)器學(xué)習(xí)其實(shí)就是給你一堆train數(shù)據(jù)稿械,你先用這些數(shù)據(jù)進(jìn)行分析,然后用你分析出的結(jié)果在test上數(shù)據(jù)上跑一圈物邑,進(jìn)行驗(yàn)證或是分析預(yù)測(cè)溜哮。
具體怎么分析,就需要用到機(jī)器學(xué)習(xí)的知識(shí)和技能色解。

1.2 機(jī)器學(xué)習(xí)的簡(jiǎn)單定義

有個(gè)大牛茂嗓,叫Tom Mitchell,他定義了machine learning就是:E-T-P.
E(experience): 就是之前的經(jīng)驗(yàn)(相當(dāng)于train data)
T(task): 就是基于各種算法的訓(xùn)練過程
P(probability): 就是對(duì)將來(lái)概率的預(yù)測(cè)
而且這是一個(gè)循環(huán)科阎,首先基于experience進(jìn)行算法分析和預(yù)測(cè)述吸,然后用數(shù)據(jù)跑task,如果跑出來(lái)的結(jié)果和預(yù)期probability相符,則會(huì)繼續(xù)提升自身的experience蝌矛,然后繼續(xù)...

"A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E."

2. 機(jī)器學(xué)習(xí)包含哪些東西

2.1 監(jiān)督學(xué)習(xí)和無(wú)監(jiān)督學(xué)習(xí)

大的來(lái)說(shuō)道批,就是監(jiān)督學(xué)習(xí)(Supervised Learning)和無(wú)監(jiān)督學(xué)習(xí)(UnSupervised Learning)
這個(gè)很簡(jiǎn)單了,就是好比給你一套試題讓你去做入撒,然后同時(shí)再給你一套歷年真題隆豹,但是一個(gè)人給你的真題帶了參考答案(Supervised Learning),一個(gè)不帶參考答案(UnSupervised Learning)茅逮。

監(jiān)督學(xué)習(xí)比較簡(jiǎn)單璃赡,誰(shuí)都懂,我就不詳說(shuō)了.
無(wú)監(jiān)督學(xué)習(xí)献雅,對(duì)于初學(xué)者碉考,可能有些場(chǎng)景,會(huì)和監(jiān)督學(xué)習(xí)有些混淆挺身,所以稍微舉幾個(gè)例子:

  • 比如天體星空的分析
  • 一個(gè)大party中的聲音分析
  • 某個(gè)東西的分類(市場(chǎng)的分類侯谁,郵件的分類,網(wǎng)站的分類-google搜索)都屬于 '無(wú)監(jiān)督學(xué)習(xí)'
  • 給個(gè)東西(比如任意的一個(gè)網(wǎng)頁(yè))章钾,自動(dòng)的去判斷屬性(比如技術(shù)類/文藝類/限制類)墙贱, 也屬于 '無(wú)監(jiān)督學(xué)習(xí)'

我自己在學(xué)習(xí)的過程中,發(fā)現(xiàn)有些場(chǎng)景伍玖,的確嫩痰,如果背景交代不清晰的話,很可能判斷錯(cuò)誤將無(wú)監(jiān)督學(xué)習(xí)認(rèn)為是監(jiān)督學(xué)習(xí)窍箍。所以專門把無(wú)監(jiān)督的舉例說(shuō)明了下串纺。
另外,機(jī)器學(xué)習(xí)還有半監(jiān)督學(xué)習(xí)和增強(qiáng)學(xué)習(xí)椰棘,也不有著不同的應(yīng)用和研究纺棺,這里就暫不細(xì)說(shuō)啦。

2.2 監(jiān)督學(xué)習(xí)(回歸和分類)

監(jiān)督學(xué)習(xí)的解決方案分為:回歸和分類
回歸就是輸出是連續(xù)值(或者你理解成是隨機(jī)值邪狞,需要我們?nèi)ヮA(yù)測(cè))
分類就是輸出是離散值(基本常見的就是非A即B,非B即C...非Y即Z)

2.2.1 回歸

大家張口閉口的“線性回歸”是啥意思祷蝌,其實(shí)意思就是,把坐標(biāo)軸上的點(diǎn)連成線帆卓,然后調(diào)整一下巨朦,湊成一條差不多的直線(y=ax+b),然后用這條直線表示對(duì)這些點(diǎn),這就是線性回歸剑令。
(是不是有人會(huì)順然想到:曲線回歸糊啡、折線回歸、水平線回歸吁津、馬甲線回歸棚蓄、人魚線回歸...哈哈,送你們一句話:'這么想,節(jié)奏就對(duì)了啊'...)

2.2.1.1 單參數(shù)線性回歸(一元線性回歸)

2.2.1.1.1 引入

小時(shí)候?qū)W解方程都是都'一元一次方程'學(xué)起來(lái)的梭依,線性回歸稍算,自然也先從最簡(jiǎn)單的一元線性回歸(單參數(shù)線性回歸)講起來(lái).

先準(zhǔn)備個(gè)基礎(chǔ)知識(shí):
給你個(gè)拋物線(開口向上的那種,a>0)役拴,如何就最小值糊探?
...
這個(gè)很簡(jiǎn)單,大家都會(huì):求導(dǎo)扎狱,斜率為0的點(diǎn)就是最小值侧到。

2.2.1.1.2 梯度下降法

接上,同樣的道理淤击,如果這不是個(gè)拋物線,我們擴(kuò)展到三維空間故源,作為曲面污抬,如何求最小值?
...
哈哈绳军,答案其實(shí)是一樣的印机,還是求導(dǎo),找出斜率為0的值门驾,但具體的操作比較復(fù)雜射赛,這里也不叫求導(dǎo),叫求偏導(dǎo)奶是,斜率也不是一口氣可以算出來(lái)的楣责,我們的先人總結(jié)了個(gè)好方法叫“梯度下降法”(隨便找個(gè)點(diǎn),然后像坐滑梯一樣聂沙,逐個(gè)試值秆麸,知道試出來(lái)最小的點(diǎn))


梯度下降法

懂得人,你們跳過這個(gè)環(huán)節(jié)就可以了及汉。不懂得人沮趣,你們就記住一個(gè)公式:

x := x - af'(x)
//:= 表示復(fù)制, a是系數(shù)(江湖上稱之為‘步長(zhǎng)’)坷随, f'(x) 表示f(x)求導(dǎo)

知道這個(gè)公式之后房铭,我們就可以求最小值了。其實(shí)過程很簡(jiǎn)單温眉,就是缸匪,我們?nèi)€(gè)初始值,比如x = 5,然后一路求下去芍殖,直到f(x) 不再改變(別想太多豪嗽,就是大概其,比如改變量小于0.00000...1什么的),算出來(lái)的就是最小值龟梦。當(dāng)然這樣的取值不能保證是最優(yōu)值隐锭,所以常見的算法是會(huì)多取幾個(gè)隨機(jī)值,各自進(jìn)行梯度算法计贰,最后所有的值里面求最優(yōu)解钦睡。

2.2.1.1.3 理論公式

以上這個(gè)是講的最基本的原理,
真正要學(xué)習(xí)單參數(shù)線性回歸看如下2個(gè)公式:


Gradient'descent'algorithm'

這2個(gè)公式是什么鬼躁倒?

a> 左邊的就是剛才所講的梯度算法中求解用的公式
  • 其中α稱作學(xué)習(xí)率(Learning Rate)
    α過小荞怒,收斂太慢,我們做起來(lái)效率低秧秉;
    α過大褐桌,可能出現(xiàn)找不到最小值的情況(有道是:"步子太大,容易xxx")
  • 初始點(diǎn)不同象迎,每次找到的結(jié)果可能不一樣荧嵌,所以這樣的結(jié)果稱之為局部最低點(diǎn),我們的目標(biāo)是尋找全局最低點(diǎn)砾淌。所以通過嘗試不同的初始值在交叉尋找啦撮,最終從結(jié)果中力求找到全局最低點(diǎn)。
b> 右邊的是單參數(shù)線性回歸的模型
  • 第一個(gè)h(x)=... 是假設(shè)函數(shù)
  • 第二個(gè)J(θ0,θ1)=... 是代價(jià)函數(shù)
  • h(x)是理論值汪厨,y是實(shí)際測(cè)試值赃春,正是因?yàn)槔碚撝蹬c實(shí)際值有出入,才需要我們?nèi)ふ易顑?yōu)解劫乱。如果h(x)和y永遠(yuǎn)相等织中,上圖的曲面就是個(gè)平面---沒有最低點(diǎn)(或者說(shuō):全世界都是最低點(diǎn))---J(θ0,θ1)恒等于0 .

2.2.1.1.4 開始做題

現(xiàn)在我們重新用數(shù)學(xué)的角度來(lái)明確我們的問題需求:


cost function intuituion

從應(yīng)用的角度來(lái)看這個(gè)東西就是:
給你一坨數(shù)據(jù),讓你給出他們的線性方程
從數(shù)學(xué)角度翻譯過來(lái)就是:
就是已知x,y的生產(chǎn)數(shù)據(jù)值要拂,求 θ0和θ1使得J(θ0,θ1)最小.

怎么解抠璃?

原始數(shù)據(jù)類似如下這樣(數(shù)據(jù)來(lái)源:coursera的machine learning課程習(xí)題,上過課的都做過

屏幕快照 2016-11-15 下午3.22.11.png

讓我們分析x和y的關(guān)系脱惰,基于之前的理論搏嗡,我們假設(shè)

//  θ0:回歸常數(shù); θ1:回歸系數(shù) 
h(θ) = θ0 + θ1x

現(xiàn)在要求出θ0和θ1拉一,怎么求出來(lái)采盒?
如下幾個(gè)辦法:

  • 把這些數(shù)據(jù)在坐標(biāo)軸上畫出來(lái),然后看著畫一條直線蔚润,然后量出來(lái)
    θ0和θ1磅氨,然后交卷。
  • 根據(jù)公式寫代碼嫡纠,根據(jù)下面這個(gè)公式烦租,寫出求θ的算法延赌,分別求出θ0和θ1
    備注:這兩個(gè)公式是根據(jù)代價(jià)函數(shù)推倒出來(lái)的,推導(dǎo)過程點(diǎn)這里
    屏幕快照 2016-11-15 下午3.50.13.png
  • 徒手算
    這個(gè)也是最實(shí)用的方法了叉橱。解線性方程的最簡(jiǎn)單方法是最小二乘法這是啥&&為啥用它)挫以,公式如下:
    (對(duì)應(yīng)b就是θ1, a就是θ0)
    屏幕快照 2016-11-15 下午3.52.04.png

    用這個(gè)公式代入就可以了(建議大家自己多操練幾遍窃祝,會(huì)加深印象和對(duì)公式的理解掐松,當(dāng)然對(duì)于徒手能力一般的童鞋可以偷個(gè)懶

想深入了解這塊的童鞋,可以看這個(gè)
浙大美女的詳解筆記:?jiǎn)螀?shù)線性回歸 Linear Regression with one variable

2.2.1.2 多參數(shù)線性回歸(多元線性回歸)

回顧:

里面的原理懂了粪小,一維換到多維只是數(shù)據(jù)多了個(gè)n或者多了個(gè)“點(diǎn)點(diǎn)點(diǎn)”的感覺(類似:1大磺,2,... , n)探膊,反正從小到大的數(shù)學(xué)只是大抵如此杠愧。

還記得我們一元的公式吧:


cost function intuituion
正文:

假設(shè)已經(jīng)經(jīng)過了一系列的推導(dǎo)和一系列"引導(dǎo)式教學(xué)"之后,我們現(xiàn)在直奔主題突想,看一下多參數(shù)線性回歸公式.

  • 預(yù)測(cè)函數(shù):


  • 代價(jià)函數(shù):


  • 我們最終要求的θ怎么求呢殴蹄?


擴(kuò)展:

這里面的很多計(jì)算,實(shí)際中需要用到矩陣的知識(shí)進(jìn)行運(yùn)算猾担,所以每個(gè)公式都對(duì)應(yīng)有矩陣的表達(dá)式和計(jì)算過程:

  • 關(guān)于θ:


  • 關(guān)于J(θ):


這里有詳細(xì)的推導(dǎo)過程,建議大家點(diǎn)進(jìn)去看一下. 我只會(huì)寫一寫關(guān)鍵節(jié)點(diǎn)或者重要公式刺下,作為一個(gè)記錄(方便以后回爐時(shí)能快速找到)绑嘹,真正如何一步步走到這里來(lái)的,還是需要去看公開課或者自己手動(dòng)去推算一下橘茉,否則后續(xù)的路會(huì)寸步難行啊...

</br>


一個(gè)iOS開發(fā)者的業(yè)余生活:machine learning之旅
by polen

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末工腋,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子畅卓,更是在濱河造成了極大的恐慌擅腰,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件翁潘,死亡現(xiàn)場(chǎng)離奇詭異趁冈,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)拜马,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門渗勘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人俩莽,你說(shuō)我怎么就攤上這事旺坠。” “怎么了扮超?”我有些...
    開封第一講書人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵取刃,是天一觀的道長(zhǎng)蹋肮。 經(jīng)常有香客問我,道長(zhǎng)璧疗,這世上最難降的妖魔是什么坯辩? 我笑而不...
    開封第一講書人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮病毡,結(jié)果婚禮上濒翻,老公的妹妹穿的比我還像新娘。我一直安慰自己啦膜,他們只是感情好有送,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開白布沾瓦。 她就那樣靜靜地躺著唠帝,像睡著了一般。 火紅的嫁衣襯著肌膚如雪苦掘。 梳的紋絲不亂的頭發(fā)上八拱,一...
    開封第一講書人閱讀 51,182評(píng)論 1 299
  • 那天阵赠,我揣著相機(jī)與錄音,去河邊找鬼肌稻。 笑死清蚀,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的爹谭。 我是一名探鬼主播枷邪,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼诺凡!你這毒婦竟也來(lái)了东揣?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤腹泌,失蹤者是張志新(化名)和其女友劉穎嘶卧,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體凉袱,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡芥吟,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了绑蔫。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片运沦。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖配深,靈堂內(nèi)的尸體忽然破棺而出携添,到底是詐尸還是另有隱情,我是刑警寧澤篓叶,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布烈掠,位于F島的核電站羞秤,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏左敌。R本人自食惡果不足惜瘾蛋,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望矫限。 院中可真熱鬧哺哼,春花似錦、人聲如沸叼风。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)无宿。三九已至茵汰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間孽鸡,已是汗流浹背蹂午。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留彬碱,地道東北人豆胸。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像巷疼,于是被迫代替她去往敵國(guó)和親配乱。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

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