我將吳博士關(guān)于機(jī)器學(xué)習(xí)的問(wèn)答匯總?cè)缦拢?/b>
剛才有一個(gè)同學(xué)提問(wèn)的是:機(jī)器學(xué)習(xí)是不是相當(dāng)于一個(gè)黑盒子,我們輸入結(jié)果得出一些結(jié)論性的東西。
是這樣的機(jī)器學(xué)習(xí)的一些方法必如說(shuō)神經(jīng)網(wǎng)絡(luò)它的一個(gè)擬合它相當(dāng)于是一個(gè)黑盒子,它的精度非常高,但是我們很難從它的一個(gè)模型擬合中得到一個(gè)非常有意義的結(jié)論。不象線性模型以后我們會(huì)看到,當(dāng)一些線比較常用的線性模型方法,我們非但可以得到一個(gè)好的預(yù)測(cè),并且我們能理解每一個(gè)變量是如何影響最終我們預(yù)測(cè)值的這樣一個(gè)過(guò)程。首先這取決于你最后的目的是什么,如果你一味的要追求最高精度的話,我們可以用一些比如神經(jīng)網(wǎng)絡(luò)的方法來(lái)得到最好的精度,但如果你的問(wèn)題是和客戶溝通,客戶想通過(guò)你的模型,了解哪一些變量會(huì)最終影響它的一個(gè)銷量。比如說(shuō)它可以通過(guò)你的模型中的一些擬合的擬合值,來(lái)得出一些商業(yè)結(jié)論這樣他們能改進(jìn)某一方面,這樣他們可以 更好的改善自己的商業(yè)實(shí)踐。
好,我們看到一個(gè)很好的問(wèn)題,就是在機(jī)器學(xué)習(xí)過(guò)程中是有一個(gè)商業(yè)預(yù)測(cè)。如何能判定一個(gè)好的模型建立適合的模型 ?
這個(gè)問(wèn)題我們是這樣的,我們會(huì)有很多方法我們會(huì)逐一去試。剛才我提到了我們有兩大目的,一個(gè)是 幫助我們理解商業(yè)過(guò)程,另外一個(gè)是追求一個(gè)很好的精度,這取決于你的客戶有什么要求,我們往往是想找到兩者之間的一個(gè)平衡點(diǎn)。然后呢,我們還有一個(gè)很重要的測(cè)試方法,就是我剛才說(shuō)的EB test, 在我的工作實(shí)踐當(dāng)中,我比如說(shuō)對(duì)我的客戶提供一個(gè)建議,然后我說(shuō)通過(guò)我這個(gè)方法你的預(yù)測(cè)你的銷量會(huì)提高,然后我的內(nèi)部客戶會(huì)使用我的這個(gè)方法,然后他會(huì)做一個(gè)對(duì)比他會(huì)把20%的人運(yùn)用我這個(gè)新方法,然后一個(gè)月以后,他會(huì)拿出銷量來(lái)做對(duì)比和傳統(tǒng)方法進(jìn)行對(duì)比 。如果我的這個(gè)新方法不會(huì)對(duì)整個(gè)銷量產(chǎn)生提高的話,那他不就意味著我的方法是失敗的。所以說(shuō)我不得不說(shuō),作為一個(gè)數(shù)據(jù)科學(xué)家壓力是非常大的,因?yàn)槟悴还馐且峁┳稍儯宜麄儠?huì)驗(yàn)證你提供的咨詢是否是有道理,是否是顯著幫助提高他們的銷量的。所以說(shuō)如果你最后的銷量并沒(méi)有上去的話,你要承擔(dān)整個(gè)項(xiàng)目失敗的責(zé)任。
好,我們剛才看到另外一個(gè)問(wèn)題錯(cuò)誤率是33%,這個(gè)錯(cuò)誤率是不是偏高,對(duì),這是一個(gè)很好的問(wèn)題。
在這兒那我并沒(méi)有完全運(yùn)用所有的特征。然后呢我們可以這樣理解這個(gè)問(wèn)題33%并不高,為什么,因?yàn)槲覀儗?shí)際當(dāng)中貸款的違約的人總數(shù)也就在18%左右,所以說(shuō)如果我預(yù)測(cè)所有的人都不違約那我的錯(cuò)誤率也就在18%左右,當(dāng)然這是一個(gè)毫無(wú)意義的結(jié)果。這個(gè)問(wèn)題是稱為unbalanced數(shù)據(jù)問(wèn)題,也就是我們的違約人數(shù)總數(shù)是非常少的,大部分的人是不違約的所以說(shuō)你如果一味追求準(zhǔn)確率的話,最后就變成你預(yù)測(cè)了所有人都不違約,這樣你的精確程度會(huì)非常高,舉一個(gè)極端例子,我以前看到過(guò)一個(gè)數(shù)據(jù)它可能最終違約的概率只有0.5%,那如果你把所有人都預(yù)測(cè)為不違約的話那你的預(yù)測(cè)精度就是99.5%這是毫無(wú)意義的,因?yàn)槲覀冏罱K想找到那些違約的人因?yàn)檫`約的人會(huì)給你帶來(lái)巨大的經(jīng)濟(jì)損失,一個(gè)人違約可能會(huì)造成20萬(wàn)美元的房貸損失。所以說(shuō)我們要綜合考慮這個(gè)問(wèn)題不光是考慮精確率,以后我們會(huì)看一個(gè)roc曲線并且我們可以構(gòu)造一個(gè)損失函數(shù),比如說(shuō)這你預(yù)測(cè)一個(gè)會(huì)違約的人不違約你會(huì)損失多少錢,然后呢把一個(gè)不違約的人預(yù)測(cè)為違約,那么我們損失一個(gè)客戶你會(huì)損失多少錢,這樣我們可以把這個(gè)問(wèn)題進(jìn)行一個(gè)量化,最后有量化就有公式,有公式我們就可以進(jìn)行求導(dǎo)啊也好,擬合啊也好。我們可以減少這個(gè)最后的損失,所以說(shuō)這是一個(gè)損失函數(shù)的優(yōu)化問(wèn)題。
好我們看到另外一個(gè)問(wèn)題是,決策樹(shù)中只連接兩個(gè)因素,所以在鏈接節(jié)點(diǎn)上實(shí)際上或許不止只有兩個(gè)因素。
這個(gè)問(wèn)題是由決策樹(shù)的特征來(lái)決定的,因?yàn)闆Q策樹(shù)是二分的,相當(dāng)于把一個(gè)數(shù)據(jù)分為兩塊大于或者小于,如果是一個(gè)分類變量的話是發(fā)生或者不發(fā)生,所以你每一步其實(shí)都是對(duì)你現(xiàn)在的一個(gè)數(shù)據(jù)集進(jìn)行二分法左邊右邊大于小于,所以說(shuō)這是由一個(gè)決策樹(shù)的算法來(lái)決定的。當(dāng)然了這個(gè)決策樹(shù)的算法最后的精度未必是最好的,但是決策樹(shù)的優(yōu)勢(shì)在于它可以可視化,能幫非數(shù)據(jù)科學(xué)家進(jìn)行一個(gè)很好的溝通,并且決策樹(shù)和一些其它方法結(jié)合以后,它的精度會(huì)有顯著的提升,我們以后會(huì)介紹的一個(gè)是boosted tree這一個(gè)方法可以把一個(gè)簡(jiǎn)單的決策樹(shù)的精度顯著提升,我們保留決策樹(shù)一族一個(gè)特征,然后那又提高它的精度,這個(gè)方法是機(jī)器學(xué)習(xí)中非常非常有用的一個(gè)方法。
我們來(lái)回答小虎的一個(gè)學(xué)員提出的問(wèn)題第一個(gè)問(wèn)題是讓我們來(lái)看一下問(wèn)題,是在機(jī)器學(xué)習(xí)在零售、銀行、金融風(fēng)險(xiǎn)的管理特別是網(wǎng)上銀行反欺詐的應(yīng)用。
好的,這個(gè)問(wèn)題是一個(gè)典型的個(gè)分類問(wèn)題,我們可以把過(guò)去有欺詐現(xiàn)象的人選出來(lái),然后把沒(méi)有欺詐的人選出來(lái)。這樣我們可以用logistic我們剛才提到的一個(gè)方法,來(lái)對(duì)每一個(gè)人的最終欺詐的概率可以進(jìn)行一個(gè)估算。我們套用剛才違約的案例把這一套方法完全應(yīng)用上去。
第二個(gè)問(wèn)題想問(wèn)一下,整個(gè)機(jī)器學(xué)習(xí)在銀行風(fēng)險(xiǎn)控制中的應(yīng)用。
然后呢,這個(gè)問(wèn)題在美國(guó)是非常常見(jiàn)的一個(gè)問(wèn)題,因?yàn)槲覀兌加幸粋€(gè)你的貸款或者信用卡會(huì)違約的一個(gè)概率,每一個(gè)銀行都會(huì)有準(zhǔn)備一個(gè)儲(chǔ)備金,來(lái)降低違約造成的沖擊,當(dāng)然啦通過(guò)機(jī)器學(xué)習(xí)我們可以在源頭上卡死違約,盡量減少違約。我們可以預(yù)測(cè)一個(gè)人最終違約的概率,這樣我們能把大部分不合格的人在第一時(shí)間就排除掉。
這其實(shí)也是一個(gè)分類問(wèn)題,機(jī)器學(xué)習(xí)監(jiān)督學(xué)習(xí)中的分類問(wèn)題,也就是一個(gè)事件會(huì)不會(huì)發(fā)生,我們將擬合一些方法。我們來(lái)提一下吧,對(duì)一個(gè)分類問(wèn)題,我們有邏輯回歸、我們有樹(shù)、boosed tree 、support backturn machine、知識(shí)照相機(jī)包括神經(jīng)網(wǎng)絡(luò)之類的各種方法來(lái)幫助你選擇一個(gè)方法來(lái)預(yù)測(cè)一個(gè)事件會(huì)不會(huì)發(fā)生的概率。
好的,剛才有一個(gè)同學(xué)提到的是,在前期就用了Python 瞬間感到自己low了不少。
其實(shí) 不是這樣的,我覺(jué)得最好學(xué)習(xí)Python的一個(gè)途徑就是在實(shí)戰(zhàn)中學(xué)習(xí)Python。 你有問(wèn)題的時(shí)候你可以百度或者你可以尋找一些資料。如果你不從實(shí)戰(zhàn)中學(xué)習(xí)你沒(méi)有一個(gè)動(dòng)力,你永遠(yuǎn)不要認(rèn)為可以通過(guò)一本書(shū)來(lái)學(xué)習(xí)python這是一個(gè)非常低效的方法,只有當(dāng)你有一個(gè)項(xiàng)目 逼著你自己去學(xué)習(xí)的時(shí)候,你這樣的學(xué)習(xí)效率是最高的。我個(gè)人也是,我個(gè)人一開(kāi)始是統(tǒng)計(jì)系的所以我用的是R,但是呢python 又是一個(gè)非常有用的一個(gè)機(jī)器學(xué)習(xí)的工具,所以說(shuō)我個(gè)人就通過(guò)Google啊、通過(guò)一些實(shí)際的案例來(lái)學(xué)習(xí)python,我覺(jué)得這方面是非常高效的。
好的,我們看到的一個(gè)問(wèn)題是在機(jī)器學(xué)習(xí)過(guò)程中是不是必須要有質(zhì)量高、維度多和數(shù)據(jù)量大的數(shù)據(jù)才能展開(kāi)機(jī)器學(xué)習(xí)。
是這樣的機(jī)器學(xué)習(xí)并不要求一定要特別大的數(shù)據(jù),然后這取決于如何定義大數(shù)據(jù)因?yàn)槲覀儎偛趴吹轿覀兊膌endingclub 有12萬(wàn)條數(shù)據(jù),其實(shí)從你的直觀來(lái)講這數(shù)據(jù)量并不小,但實(shí)際上它只有17.8G從數(shù)據(jù)的量來(lái)上其實(shí)是并不大的,這是一點(diǎn)。然后呢,我想提的是機(jī)器學(xué)習(xí)過(guò)程中,數(shù)據(jù)質(zhì)量是一個(gè)非常重要的因素。因?yàn)闆](méi)有一個(gè)好的數(shù)據(jù)你很難得出一個(gè)有意義的結(jié)論。所以說(shuō)我們?cè)趯?shí)際工作中,我們花大量的時(shí)間來(lái)清理數(shù)據(jù)。來(lái)把一些不好的數(shù)據(jù)來(lái)調(diào)整、來(lái)跟商業(yè)方面的人士溝通盡量得到一個(gè)高質(zhì)量的數(shù)據(jù)。
好的,下一個(gè)問(wèn)題是在數(shù)據(jù)分析前是不是要有自己的預(yù)測(cè)?
這個(gè)問(wèn)題比較有意思因?yàn)槟氵€沒(méi)有進(jìn)行機(jī)器學(xué)習(xí)你如何有自己的預(yù)測(cè)呢?當(dāng)然我這個(gè)意思就是有兩種分析,一種是叫數(shù)據(jù)導(dǎo)向型data driven,然后另一種是你有經(jīng)驗(yàn)domain knowledge 你有自己的一個(gè)領(lǐng)域的專業(yè)知識(shí) 這兩者是相互結(jié)合的。你不光需要純數(shù)據(jù)分析,我們也需要一些自己的預(yù)測(cè)這樣的某些專業(yè)知識(shí),如果有專業(yè)知識(shí)的話,很快能幫助你鎖定一些重要的變量以及一些變量的變形所以說(shuō)這兩者是相結(jié)合的。
我想說(shuō)一下關(guān)于數(shù)據(jù)量這個(gè)問(wèn)題。
其實(shí)我們可以看到剛才波士頓房?jī)r(jià)這個(gè)數(shù)據(jù)只有506個(gè)點(diǎn),因?yàn)槊恳粋€(gè)點(diǎn)其實(shí)代表的是一個(gè)城鎮(zhèn),所以說(shuō)我們要預(yù)測(cè)每一個(gè)城鎮(zhèn)的房?jī)r(jià)波士頓周邊房?jī)r(jià)這樣的一個(gè)數(shù)據(jù)量是不可能會(huì)非常巨大的,我們不可能有上億個(gè)或者上千萬(wàn)個(gè)小城鎮(zhèn)對(duì)吧,所以說(shuō)我們不一定要建立在巨大的數(shù)據(jù)量前提下才可以進(jìn)行機(jī)器學(xué)習(xí),我們可以通過(guò)一些小數(shù)據(jù)也能得到一些非常非常有用的、有幫助的結(jié)論。