機(jī)器學(xué)習(xí)流程,以及實(shí)踐應(yīng)用
編輯導(dǎo)語:?機(jī)器學(xué)習(xí)是一種數(shù)據(jù)分析技術(shù),讓計(jì)算機(jī)執(zhí)行人和動(dòng)物與生俱來的活動(dòng):從經(jīng)驗(yàn)中學(xué)習(xí),也被稱為預(yù)測分析;本文作者分享了關(guān)于機(jī)器學(xué)習(xí)的流程以及實(shí)踐應(yīng)用,我們一起來看一下。
我所理解的機(jī)器學(xué)習(xí)是一種能夠?qū)崿F(xiàn)人工智能的技術(shù),建立能從經(jīng)驗(yàn)(數(shù)據(jù))中進(jìn)行學(xué)習(xí)的模型,從而使這個(gè)模型可以達(dá)到自行處理此類數(shù)據(jù)的能力。
也可以理解為:通過大量的數(shù)據(jù),訓(xùn)練出一個(gè)能處理此類數(shù)據(jù)的模型,使得這個(gè)模型可以根據(jù)已知的數(shù)據(jù),準(zhǔn)確率很高的判斷出未知的數(shù)據(jù),從而使得人類能夠采取正確的方法去處理某些事情。
想要了解機(jī)器學(xué)習(xí)你需要知道以下幾點(diǎn):
一、機(jī)器學(xué)習(xí)的流程
從實(shí)際的應(yīng)用場景出發(fā),要訓(xùn)練出來一個(gè)能夠適應(yīng)某場景的模型需要經(jīng)過以下幾步:
1. 場景解析
場景解析就是將業(yè)務(wù)邏輯,抽象成為通過算法能夠解決的問題。
比如:做一個(gè)心臟病預(yù)測系統(tǒng),那么就可以抽象為二分類問題——要么有心臟病,要么沒有;然后,根據(jù)已有的數(shù)據(jù)看看有沒有目標(biāo)值,可以判斷出:是監(jiān)督學(xué)習(xí)還是無監(jiān)督學(xué)習(xí),還是半監(jiān)督學(xué)習(xí);從而,選擇出能夠處理好此類數(shù)據(jù)的算法。
(不同場景采用的算法是不同的)高頻的有以下幾種類型的場景:
- 分類場景:廣告投放預(yù)測,網(wǎng)站用戶點(diǎn)擊預(yù)測。
- 聚類場景:人群劃分,產(chǎn)品種類劃分。
- 回歸場景:商品購買量預(yù)測和股票成交額預(yù)測。
- 文本分析類場景:新聞的標(biāo)簽提取,文本自動(dòng)分類和文本關(guān)鍵信息抽取。
- 關(guān)系圖算法:社交網(wǎng)絡(luò)關(guān)系,網(wǎng)絡(luò)關(guān)系挖掘和金融風(fēng)險(xiǎn)控制。
- 模式識(shí)別:語音識(shí)別,圖像識(shí)別和手寫文字識(shí)別。
2. 數(shù)據(jù)預(yù)處理
場景解析完,選擇適合處理此類數(shù)據(jù)的算法后,需要對數(shù)據(jù)進(jìn)行預(yù)處理——就是對數(shù)據(jù)進(jìn)行清洗工作,對空值、亂碼進(jìn)行處理。
數(shù)據(jù)預(yù)處理的主要目的就是:減少噪音數(shù)據(jù)對訓(xùn)練數(shù)據(jù)的影響。
3. 特征工程
特征工程是機(jī)器學(xué)習(xí)中最重要的一部分,因?yàn)楦鶕?jù)已有的訓(xùn)練數(shù)據(jù),可選用的算法是有限的;那么在同樣的算法下特征的選取是不同的,100個(gè)人對一件事情會(huì)有100種看法,也就有100種特征,最后特征的質(zhì)量決定模型的好壞。
特征工程需要做的包括:特征抽象、特征重要性的評(píng)估、特征衍生、特征降維。
4. 模擬訓(xùn)練
在經(jīng)過以上過成后,進(jìn)入訓(xùn)練模塊,生成模型。
5. 模型評(píng)估
對生成模型的成熟度進(jìn)行評(píng)估。
6. 離線/在線服務(wù)
在實(shí)際運(yùn)用過程中,需要配合調(diào)度系統(tǒng)來使用。
案例場景:每天將用戶當(dāng)日新增的數(shù)據(jù)量流入數(shù)據(jù)庫表里,通過調(diào)度系統(tǒng)啟用離線訓(xùn)練服務(wù),生成最新的離線模型,然后通過在線預(yù)測服務(wù)進(jìn)行實(shí)時(shí)預(yù)測。
二、數(shù)據(jù)源結(jié)構(gòu)
結(jié)構(gòu)化數(shù)據(jù):機(jī)構(gòu)化數(shù)據(jù)是指以矩陣結(jié)構(gòu)儲(chǔ)存的數(shù)據(jù)。
數(shù)據(jù)庫里的數(shù)據(jù)就是以這種結(jié)構(gòu)存在,可以通過二維結(jié)構(gòu)來顯示,如下圖:
結(jié)構(gòu)化數(shù)據(jù)中,有兩個(gè)重要的概念需要介紹一下:特征列和目標(biāo)列。
上圖里age,sex,cp列都是特征列,ifhealth是目標(biāo)列。
非結(jié)構(gòu)化數(shù)據(jù):典型的非結(jié)構(gòu)化數(shù)據(jù)是圖像、文本、語音等文件;這些數(shù)據(jù)不能以矩陣的結(jié)構(gòu)儲(chǔ)存,目前的做法也是通過把非結(jié)構(gòu)化的數(shù)據(jù)轉(zhuǎn)化為二進(jìn)制儲(chǔ)存格式。
半結(jié)構(gòu)化數(shù)據(jù):半結(jié)構(gòu)化數(shù)據(jù)是指按照一定的結(jié)構(gòu)儲(chǔ)存,但不一定是二維的數(shù)據(jù)庫行存儲(chǔ)形態(tài)的數(shù)據(jù);還有一種是以二維數(shù)據(jù)形態(tài)儲(chǔ)存的,但某些字段是文本類型,某些字段是數(shù)值類型的,如下圖:
三、算法分類
監(jiān)督學(xué)習(xí):是指每個(gè)進(jìn)入算法的訓(xùn)練樣本數(shù)據(jù)都有對應(yīng)的目標(biāo)值。
如上圖2所示,Ifhealth為目標(biāo)值。
常見的監(jiān)督學(xué)習(xí)算法:
無監(jiān)督學(xué)習(xí):就是訓(xùn)練樣本的數(shù)據(jù)里沒有目標(biāo)列,不依賴于打標(biāo)好的機(jī)器學(xué)習(xí)算法。
那么,這樣的數(shù)據(jù)可能對一些分類和回歸的場景就不太適合了。
無監(jiān)督學(xué)習(xí)主要是來解決一些聚類場景的問題。
半監(jiān)督學(xué)習(xí):
通過上面的監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí)的概念,再來看半監(jiān)督學(xué)習(xí)就比較好理解了。
也就是說,訓(xùn)練數(shù)據(jù)里只有部分?jǐn)?shù)據(jù)是打標(biāo)的。目前,半監(jiān)督學(xué)習(xí)的算法,都是監(jiān)督學(xué)習(xí)算法的變形。
強(qiáng)化學(xué)習(xí):
強(qiáng)化學(xué)習(xí)是一種比較復(fù)雜的機(jī)器學(xué)習(xí)種類。強(qiáng)調(diào)的是:系統(tǒng)與外界不斷的交換,獲得外界的反饋,然后決定自身的行為。
如:無人駕駛,阿爾法狗下圍棋就是強(qiáng)化學(xué)習(xí)的應(yīng)用。
四、過擬合問題(欠擬合這里不做詳細(xì)的介紹)
過擬合是數(shù)據(jù)挖掘(通過大量數(shù)據(jù),訓(xùn)練模型的過程也稱為數(shù)據(jù)挖掘)領(lǐng)域中最常見的問題,是指:通過訓(xùn)練集訓(xùn)練了一個(gè)模型,這個(gè)模型對于訓(xùn)練集的預(yù)測準(zhǔn)確率很高,可以達(dá)到95%以上;但是換一份兒數(shù)據(jù)集進(jìn)行預(yù)測,準(zhǔn)確率大幅度下降。
出現(xiàn)這種情況的原因可能是:訓(xùn)練的過擬合現(xiàn)象。
導(dǎo)致過擬合問題的原因有以下三種:
- 訓(xùn)練數(shù)據(jù)集樣本單一。
- 訓(xùn)練樣本噪音數(shù)據(jù)干擾過大。
- 模型過于復(fù)雜。
五、結(jié)果評(píng)估
機(jī)器學(xué)習(xí)最終的目的是生成模型。
模型生成后需要一些指標(biāo)來評(píng)估這個(gè)模型的好壞。
常用到的概念有:精確率,召回率,F(xiàn)1值,ROC和AUC幾種。
首先介紹一下精確率,召回率和F1值,這3個(gè)指標(biāo)是由:TP,TN,F(xiàn)P,F(xiàn)N這4個(gè)值計(jì)算而來的(這里不做解釋了)。
- 精確率=TP/(TP+FP)
- 召回率=TP/(TP+FN)
- F1=(2*精確率*召回率)/(精確率*召回率)
ROC曲線是常用的二分類場景的模型評(píng)估算法曲線,下圖齒狀弧形曲線就是ROC曲線。
如圖所示:
通過ROC曲線可以清晰的展示出來,只要模型曲線越來越接近左上角就說明模型的效果越好。
AUC的值是ROC與橫軸所圍起來的面積(圖中帶陰影的部分),這個(gè)AUC的值越大說明模型的效果越好。
AUC的值取0~1之間,通常大于0.5,當(dāng)AUC的值大于0.9以上時(shí),證明這個(gè)模型的效果比較好。
以上對機(jī)器學(xué)習(xí)的流程,和一些概念做了解釋,但距離真正可以上手操作還有很遠(yuǎn)的距離;如非結(jié)構(gòu)化數(shù)據(jù)和半結(jié)構(gòu)化數(shù)據(jù),如何轉(zhuǎn)化為結(jié)構(gòu)化數(shù)據(jù)?特征抽象,特征衍生,特征降維如何操作?等等,實(shí)際的操作問題,還需要一定的篇幅來介紹。
本文由 @夢想在起飛 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自 Unsplash,基于CC0協(xié)議。
厲害,學(xué)習(xí)了
可以轉(zhuǎn)截你這篇文章?
可以的,但需要標(biāo)明原創(chuàng)作者,謝謝??