> 演示調用SKLearn API,實現邏輯分類及多元邏輯分類。
> 本課學習時長評估:2小時。
> [代碼原始鏈接](https://www.cnblogs.com/yuxiangyang/p/11186809.html)
> [代碼用的數據鏈接](https://github.com/LXP-Never/data)
## 前置學習內容
[經典算法-邏輯回歸](http://www.hmoore.net/pumadong/laodong_ml/1685772)
## 代碼演示
代碼演示部分,點擊代碼原始鏈接學習查看即可。
### 二元邏輯分類
邏輯分類:----底層為線性回歸問題
通過輸入的樣本數據,基于多元線型回歸模型求出線性預測方程。
y = w0+w1x1+w2x2
但通過線型回歸方程返回的是連續值,不可以直接用于分類業務模型,所以急需一種方式使得把連續的預測值->離散的預測值。
[-oo, +oo]->{0, 1}
邏輯函數(sigmoid):y = 1 / (1+e^(-x)), 該邏輯函數當x>0,y>0.5;當x<0, y<0.5;
可以把樣本數據經過線性預測模型求得的值帶入邏輯函數的x,即將預測函數的輸出看做輸入被劃分為1類的概率,
擇概率大的類別作為預測結果,可以根據函數值確定兩個分類。這是連續函數離散化的一種方式。
邏輯回歸相關API:
import sklearn.linear_model as lm
# 構建邏輯回歸器
# solver:邏輯函數中指數的函數關系(liblinear為線型函數關系)
# C:參數代表正則強度,為了防止過擬合。正則越大擬合效果越小。
model = lm.LogisticRegression(solver='liblinear', C=正則強度)
model.fit(訓練輸入集,訓練輸出集)
result = model.predict(帶預測輸入集)
### 多元邏輯分類
多元邏輯分類:----底層為線性回歸問題
通過多個二元分類器解決多元分類問題。
特征1 特征2 ==> 所屬類別
7 ==> A
3.5 8 ==> A
1.2 1.9 ==> B
5.4 2.2 ==> C
若拿到一組新的樣本,可以基于二元邏輯分類訓練出一個模型判斷屬于A類別的概率。
再使用同樣的方法訓練出兩個模型分別判斷屬于B、C類型的概率,最終選擇概率最高的類別作為新樣本的分類結果。
邏輯回歸相關API:
import sklearn.linear_model as lm
# 構建邏輯回歸器
# solver:邏輯函數中指數的函數關系(liblinear為線型函數關系)
# C:參數代表正則強度,為了防止過擬合。正則越大擬合效果越小。
model = lm.LogisticRegression(solver='liblinear', C=正則強度)
model.fit(訓練輸入集,訓練輸出集)
result = model.predict(帶預測輸入集)