只是為了幫助自己理解經(jīng)典算法,
常見的分類算法模型
KNN
- 找出距離目標(biāo)點(diǎn)最近的幾個(gè)樣本點(diǎn),用樣本點(diǎn)的標(biāo)注投票,視作目標(biāo)點(diǎn)的標(biāo)注。
- 距離:
- 歐氏距離 p=2
- (|x1 - x2|^2 + |y1 - y2|^2) ^(1/2)
- 平方和 再 開根號(hào) - 曼哈頓距離 p=1
- 各個(gè)特征的絕對(duì)差的和 - 閔可夫斯基距離
- 各個(gè)特征的絕對(duì)差的N次方 求和 再開N次根
- 歐氏距離 p=2
- KNeighborsClassifier() 常用參數(shù)
- n_neighbors 選擇幾個(gè)樣本點(diǎn)
- p 幾階距離
樸素貝葉斯
- 樸素:即認(rèn)為特征之間是相互獨(dú)立的
- 基于聯(lián)合概率分布
- AB同時(shí)發(fā)生:P(A)* P(B|A) = P(B)*P(A|B)
- P(B|A) = P(B)*P(A|B)/P(A)
- 高斯貝葉斯 GaussianNB
- 特征是高斯分布 (正態(tài)分布)
- 伯努利貝葉斯 BernoulliNB
- 特征是伯努利分布 (0-1分布)
決策樹
- 在每次決策時(shí),都優(yōu)先找出最能區(qū)分這些樣本點(diǎn)的要素,用這個(gè)要素進(jìn)行樣本的區(qū)分,并重復(fù)此步驟,直到所有點(diǎn)都決策完成,或者在決策最大深度,進(jìn)行樣本點(diǎn)投票,多數(shù)點(diǎn)的標(biāo)注即為此樣本類別的標(biāo)注。
- 怎么找:
- Gini系數(shù)
- 信息熵增益
- 信息熵增益率
- DecisionTreeClassifier 常用參數(shù)
- criterion 怎么找:Gini/entropy
- max_depth 最大深度
- min_samples_split 最小樣本拆分
- min_samples_leaf 最小葉節(jié)點(diǎn)樣本數(shù)
支持向量機(jī)
- 試圖用一條線將樣本點(diǎn)分為兩類, 如果不能分,可以通過核函數(shù)向高維空間映射,或者找到最優(yōu)的解,求錯(cuò)誤歸類的程度最小。
- SVC 參數(shù)
- C 錯(cuò)誤歸類點(diǎn)的懲罰值 用來調(diào)整精度
- kernel 核函數(shù)
- max_iter 最大迭代次數(shù)
- tol 運(yùn)算終止的閾值
- decision_function_shape 分類比較方法
- ovo one vs one
- ovr one vs rest
集成方法
- 隨機(jī)森林
- 用多棵樹進(jìn)行并聯(lián)的決策模型,每棵樹選取若干特征, 然后均值投票。
- 默認(rèn) 10*squart(n)模型 即 10棵樹每一棵根號(hào)n個(gè)特征,然后投票。
- 參數(shù)
- n_estimators 決策樹個(gè)數(shù)
- criterion 分叉判別方式
- max_feature 每棵樹最大特征(12個(gè)/ 80% /函數(shù)個(gè)/全部)
- max_depth min_samples_split
- min_samples_leaf 葉節(jié)點(diǎn)的最小樣本數(shù),
- bootstrap=True 放回采樣 oob_score 在放回采樣中 用未采樣點(diǎn)進(jìn)行決策樹評(píng)估
- Adaboost
- 用多個(gè)若分類器的串聯(lián)進(jìn)行模擬,這一次模擬中分類錯(cuò)的點(diǎn)在下一次模擬中會(huì)增加權(quán)重,滿足閾值要求后,將各個(gè)模擬器進(jìn)行分權(quán)投票,得到最終的模型結(jié)果。
- 參數(shù)
- base_estimator 規(guī)則 默認(rèn)決策樹
- n_estimators 分類器個(gè)數(shù)
- learning_rate (0-1) 分類器權(quán)值的衰減
- algorithm
- SAMME.R:用對(duì)樣本集分類的預(yù)測(cè)概率大小作為弱學(xué)習(xí)器權(quán)重 (默認(rèn))
- SAMME:用對(duì)樣本集分類效果作為弱學(xué)習(xí)器權(quán)重
邏輯回歸
- 廣義的線性回歸 在線性可分時(shí) 表現(xiàn)較好
- LogisticRegression 參數(shù)
- penalty "l1" 一范式均值 或者 "L2"二范式 均方差 正則化
- tol 算法停止的閾值
- C c越大 正則化就越弱
- solver
- 小數(shù)據(jù)集 libliner
- sag 隨機(jī)梯度下降
- max_iter 最大迭代次數(shù)
梯度提升樹
- 對(duì)連續(xù)數(shù)值的決策分類,依據(jù)不再是Gini系數(shù),而是“方差最小化”
- 用一階差分值作為下一棵樹的分類樣本
常見的聚類算法
Kmeans
基于切割的聚類
-
算法
- 1.隨機(jī)選擇 n 個(gè)樣本點(diǎn)作為聚類中心,求各個(gè)點(diǎn)到這些聚類中心的距離,按照距離遠(yuǎn)近分類。
- 2.此時(shí)將樣本分成n類,求這n個(gè)聚類的聚類中心,然后按照這三個(gè)聚類中心再一次將樣本點(diǎn)分成n類,會(huì)得到新的n個(gè)聚類和聚類中心,循環(huán)往復(fù),直到某兩次聚類的聚類中心變化不大。認(rèn)為聚類完成。
受異常點(diǎn)的影響較為明顯。
DBSCAN
- 基于密度的聚類
- 1.指定的E鄰域內(nèi),樣本點(diǎn)書大于等于閾值的點(diǎn) 稱為核心對(duì)象,這些E鄰域內(nèi)的點(diǎn)與核心對(duì)象直接密度可達(dá)。
- 2.核心點(diǎn)- 核心點(diǎn) - 核心點(diǎn) - 點(diǎn) ,樣本點(diǎn)與核心點(diǎn) 密度可達(dá)。
- 3.點(diǎn)- 核心點(diǎn)- 核心點(diǎn) - 點(diǎn) 點(diǎn)與點(diǎn)之間密度相連
- 所有密度相連的點(diǎn)歸為一類。
- 離群點(diǎn)不明顯
- 參數(shù)
- min_samples 最小點(diǎn)數(shù)
- eps E鄰域范圍
層次聚類
- 1.先把距離很近的點(diǎn)歸為一類
- 2.再向上靠攏,把新生成的樣本類視作分類對(duì)象,逐層減少分類的個(gè)數(shù)。
- 簇間距離的算法:
- 最短聚類
- 最長(zhǎng)距離
- 平均距離
- Ward 平方殘差和, 在簇合并前后,平方殘差和增加的越小,證明簇與簇之間越應(yīng)該合并。
- 聚類靈活 但是容易受離群點(diǎn)影響。
模型評(píng)價(jià)
模型泛化結(jié)果
-
混淆矩陣
繪制 預(yù)測(cè)結(jié)果與實(shí)際分類的矩陣
- 混淆矩陣.png
TP 正確地 識(shí)別為正 圖中共104個(gè)樣本
TN 正確地 識(shí)別為負(fù) 圖中共881個(gè)樣本
FP 錯(cuò)誤地 識(shí)別為正(樣本點(diǎn)實(shí)際屬于負(fù)類)圖中共12個(gè)樣本
FN 錯(cuò)誤地 識(shí)別為負(fù) 圖中共3個(gè)樣本
-
指標(biāo)
- 正確率 Accuracy
- 所有識(shí)別正確的比例
- 召回率 Recall
- 所有實(shí)際為正類的樣本中,識(shí)別為正類的比例。
- 精準(zhǔn)率 Precision 也叫TPR
- 所有識(shí)別為正類的樣本中,識(shí)別正確的比例。
- 錯(cuò)誤接收率 FPR
- 所有識(shí)別為負(fù)類的樣本中,識(shí)別錯(cuò)誤的比例。
- F分?jǐn)?shù)
- F分?jǐn)?shù).png
β=1 時(shí) 即F1分?jǐn)?shù),precision 和 Recall 同樣重要,無論哪個(gè)數(shù)值很小都會(huì)使得F1分?jǐn)?shù)變小。F分?jǐn)?shù)評(píng)價(jià)避免了樣本不均,即樣本中正類負(fù)類比例相差很大時(shí),準(zhǔn)確率高,但模型泛化能力依然較差的情況。
- 正確率 Accuracy
-
ROC曲線 受試者工作模式曲線。
- 橫軸為TPR,縱軸為FPR。
- 曲線越接近左上角,曲線下方的面積 AUC 越大, 模型的泛化能力越好。
- 虛線為完全隨機(jī)的二分類預(yù)測(cè),虛線附近、虛線右下側(cè)對(duì)應(yīng)的模型沒有實(shí)際應(yīng)用意義。
- ROC曲線.png