福州網(wǎng)站建設(shè)制作首選熒光信息建網(wǎng)站建設(shè)
目錄
- 1、數(shù)據(jù)挖掘概述
- 2、數(shù)據(jù)挖掘常用庫
- 3、模型介紹
- 3.1 分類
- 3.2 聚類
- 3.3 回歸
- 3.4 關(guān)聯(lián)
- 3.5 模型集成
- 4、模型評估
- ROC 曲線
- 5、模型應(yīng)用
1、數(shù)據(jù)挖掘概述
數(shù)據(jù)挖掘:尋找數(shù)據(jù)中隱含的知識并用于產(chǎn)生商業(yè)價值
數(shù)據(jù)挖掘產(chǎn)生原因:海量數(shù)據(jù)、維度眾多、問題復(fù)雜
數(shù)據(jù)挖掘作用:
- 分類問題(該新聞是屬于體育新聞還是娛樂新聞還是其他類型)
- 聚類問題(地上掉落的一堆樹葉,哪些屬于同一棵樹)
- 回歸問題(已知前幾年的房價數(shù)據(jù),預(yù)測明年的房價)
- 關(guān)聯(lián)問題(推薦算法)
數(shù)據(jù)挖掘流程:
- 業(yè)務(wù)理解:和業(yè)務(wù)方充分溝通,明確需求
- 數(shù)據(jù)理解
- 數(shù)據(jù)準(zhǔn)備
數(shù)據(jù)清洗:
.缺失值處理(刪除、填充、不做處理)
.異常值處理:數(shù)據(jù)本身錯誤(記錄時錯誤)、數(shù)據(jù)本身是正常的但不符號業(yè)務(wù)實際(某賬號游戲充值10萬)要對正常異常值保留甚至特別留意
.數(shù)據(jù)偏差:處理數(shù)據(jù)嚴(yán)重不對等不均衡情況
.特征選擇:
構(gòu)建訓(xùn)練集和測試集方法(留出法、交叉嚴(yán)重法、自助法)
- 構(gòu)建模型
- 評估模型
- 模型部署
2、數(shù)據(jù)挖掘常用庫
數(shù)學(xué)模塊math
日期時間模塊datetime
隨機模塊random
文件模塊操作file
正則匹配模塊re
系統(tǒng)接口模塊sys
import math
dir(math) #查看math中所有方法名稱
help(math) #match的描述,以及方法的介紹
3、模型介紹
3.1 分類
分類是有監(jiān)督的學(xué)習(xí)過程。 處處理分類問題首先要有一批已經(jīng)有標(biāo)簽結(jié)果的數(shù)據(jù),經(jīng)過分類算法的學(xué)習(xí),
就可以預(yù)測新的未知數(shù)據(jù)的分類。
分類模型: KNN 算法、決策樹算法、隨機森林、SVM 等
3.2 聚類
聚類是無監(jiān)督的,聚類就是把一個數(shù)據(jù)集劃分成多個組的過程,使得組內(nèi)的數(shù)據(jù)盡量高度集中,而和其他組的數(shù)據(jù)之間盡量遠(yuǎn)離。這種方法是針對已有的數(shù)據(jù)進(jìn)行劃分,不涉及未知的數(shù)據(jù)。
3.3 回歸
回歸:與分類問題十分相似,都是根據(jù)已知的數(shù)據(jù)去學(xué)習(xí),然后為新的數(shù)據(jù)進(jìn)行預(yù)測。但是不同的是,分類方法輸出的是離散的標(biāo)簽,回歸方法輸出的結(jié)果是連續(xù)值
3.4 關(guān)聯(lián)
關(guān)聯(lián)問題對應(yīng)的方法就是關(guān)聯(lián)分析。這是一種無監(jiān)督學(xué)習(xí),關(guān)聯(lián)分析是要在已有的數(shù)據(jù)中尋找出數(shù)據(jù)的相關(guān)關(guān)系。比如在我們津津樂道的啤酒與尿布
3.5 模型集成
模型集成也可以叫作集成學(xué)習(xí),其思路就是去合并多個模型來提升整體的效果
訓(xùn)練多個并列的模型,或者串行地訓(xùn)練多個模型
模型集成的 3 種方式:
- Bagging(裝袋法):多次隨機抽樣構(gòu)建訓(xùn)練集,每構(gòu)建一次,就訓(xùn)練一個模型,最后對多個模型的結(jié)果附加一層決策,使用平均結(jié)果作為最終結(jié)果。隨機森林算法就運用了該方法
- Boosting(增強法):是串行的訓(xùn)練,即每次把上一次訓(xùn)練的結(jié)果也作為一個特征,不斷地強化學(xué)習(xí)的效果。
- Stacking(堆疊法):是對前面兩種方法進(jìn)行了擴展,訓(xùn)練的多個模型既可
以進(jìn)行橫向擴展,也可以進(jìn)行串行增強,最終再使用分類或者回歸的方法把前面模型的結(jié)果進(jìn)行整合。
其中的每一個模型可以使用不同的算法,對于結(jié)構(gòu)也沒有特定的規(guī)則,真正是 “黑貓白貓,抓住老鼠就是好貓”。所以,在使用堆疊法時,就需要你在具體業(yè)務(wù)場景中不斷地去進(jìn)行嘗試和優(yōu)化,以達(dá)到最佳效果。
4、模型評估
模型評估就是對你的模型進(jìn)行多種維度的評估,來確認(rèn)你的模型是否可以應(yīng)用。
準(zhǔn)確率指標(biāo):
- TP(true positive)原本為真,且被預(yù)測為真
- TN(true negative)原本為真,但預(yù)測為假
- FP(false positive)原本為假,但被預(yù)測為真
- FN(false negative)原本為假,且預(yù)測為假
計算數(shù)值:
- 準(zhǔn)確率:預(yù)測正確的比例 (TP+FN)/(TP+TN+FP+FN)
在所有樣本中,預(yù)測正確的概率 - 精確率:在所有真的樣本中被預(yù)測為真的比例 TP/(TP+FP)你認(rèn)為的正樣本中,有多少是真的正確的概率
- 召回率:按預(yù)測結(jié)果分,在所有預(yù)測為真的樣本中實際也是真的比例 TP/(TP+FN)正樣本中有多少是被找了出來
ROC 曲線
兩個值:真正例率和假正例率
真正例率:TP/(TP+FN)
假正例率:FP/(FP+TN)
使用這兩個值在坐標(biāo)系上畫出一系列的點,縱坐標(biāo)是真正例率,橫坐標(biāo)是假正例率,把這些點連起來形成的曲線就是 ROC 曲線
ROC 曲線下方的面積是 AUC 值(Area Under Curve,曲線下面積),ROC 曲線和 AUC 值可以反映一個模型的穩(wěn)定性,當(dāng) ROC 曲線接近對角線時,說明模型輸出很不穩(wěn)定,模型就越不準(zhǔn)確
一些其他指標(biāo):泛化能力(過擬合與欠擬合)、可解釋性、魯棒性、模型速度
這些模型評估,大多適用于分類模型,因為分類模型是一種監(jiān)督模型,對于無監(jiān)督模型,本身沒有非常明確的結(jié)果標(biāo)準(zhǔn),所以也很難找到一個衡量指標(biāo)
5、模型應(yīng)用
模型產(chǎn)出結(jié)果,都需要應(yīng)用到業(yè)務(wù)當(dāng)中去
服務(wù)架構(gòu)部署一些概念:
Flask Web 框架:在日常的任務(wù)中可以使用 Flask 作為構(gòu)建我們的 Web 服務(wù)框架,它是用 Python 來實現(xiàn)的。
Gunicorn HTTP 服務(wù):可以理解成 HTTP 服務(wù)器,需要注意的是 Gunicorn 只能運行在 Linux 服務(wù)器上面。
Nginx 負(fù)載均衡:Nginx 是一個功能很強大的 Web 服務(wù)項目,它可以用作負(fù)載均衡器,很多大公司都在使用。負(fù)載均衡用于通過集群中的多個服務(wù)器或?qū)嵗龑⒐ぷ髫?fù)載進(jìn)行分布,目的是避免任何單一資源發(fā)生過載,進(jìn)而將響應(yīng)時間最小化、程序吞吐量最大化。在上圖中,負(fù)載均衡器是面向客戶端的實體,會把來自客戶端的所有請求分配到集群中的多臺服務(wù)器上。
客戶端:業(yè)務(wù)的具體場景,可能是手機 App,也可能是其他服務(wù)器應(yīng)用,客戶端會向托管用于模型預(yù)測的架構(gòu)服務(wù)器發(fā)送請求。比如今日頭條 App 頁面下拉,將會調(diào)用推薦算法模型進(jìn)行推薦內(nèi)容的計算。