阿里天池訓練營第一次學習,關於邏輯回歸的一些看法。
從sklearn中匯入邏輯回歸模型
from sklearn.linear_model import logisticregression
注:查得sklearn(版本0.21.3)的linear_model資料夾下面已經沒有randomized_l1.py檔案,而randomizedlogisticregression就在該檔案內。randomizedlogisticregression已經被移出sklearn包,移到了 scikit-learn-contrib/stability-selection中。
二分類結果
## 為了正確評估模型效能,將資料劃分為訓練集和測試集,並在訓練集上訓練模型,在測試集上驗證模型效能。
from sklearn.model_selection import train_test_split
## 選擇其類別為0和1的樣本 (不包括類別為2的樣本)
## 取前100個資料(只包含0,1兩個類)
iris_features_part = iris_features.iloc[:100]
iris_target_part = iris_target[:100]
## 測試集大小為20%, 80%/20%分
x_train, x_test, y_train, y_test = train_test_split(iris_features_part, iris_target_part, test_size = 0.2, random_state = 2020)
# 在訓練集上訓練邏輯回歸模型
可以看到,在二分類結果上,準確度為1
三(多)分類結果
## 測試集大小為20%, 80%/20%分
x_train, x_test, y_train, y_test = train_test_split(iris_features, iris_target, test_size = 0.2, random_state = 2020)
## 定義 邏輯回歸模型
clf = logisticregression(random_state=0, solver='lbfgs')
# 在訓練集上訓練邏輯回歸模型
通過結果我們可以發現,其在三分類的結果的**準確度上有所下降,其在測試集上的準確度為: 86.67% ,這是由於』versicolor』(1)和 『virginica』(2)這兩個類別的特徵,我們從視覺化的時候也可以發現,其特徵的邊界具有一定的模糊性(邊界類別混雜,沒有明顯區分邊界),所有在這兩類的**上出現了一定的錯誤。
邏輯回歸 原理簡介:
logistic回歸雖然名字裡帶「回歸」,但是它實際上是一種分類方法,主要用於兩分類問題(即輸出只有兩種,分別代表兩個類別),所以利用了logistic函式(或稱為sigmoid函式),函式形式為:
其對應的函式影象可以表示如下:
通過上圖我們可以發現 logistic 函式是單調遞增函式,並且在z=0的時候取值為0.5,並且 ????(⋅) 函式的取值範圍為 (0,1) 。
而回歸的基本方程為 ?=?0+∑?????? ,
將回歸方程寫入其中為:
?=?(?=1|?,?)=ℎ?(?,?)=11+?−(?0+∑??????)
所以, ?(?=1|?,?)=ℎ?(?,?) , ?(?=0|?,?)=1−ℎ?(?,?)
邏輯回歸從其原理上來說,邏輯回歸其實是實現了乙個決策邊界:對於函式 ?=11+?−? ,當 ?=>0 時, ?=>0.5 ,分類為1,當 ?<0 時, ?<0.5 ,分類為0,其對應的 ? 值我們可以視為類別1的概率**值.
對於模型的訓練而言:實質上來說就是利用資料求解出對應的模型的特定的 ? 。從而得到乙個針對於當前資料的特徵邏輯回歸模型。
而對於多分類而言,將多個二分類的邏輯回歸組合,即可實現多分類。
python學習打卡 Task1
基礎知識 注釋模組 內建函式dir 及help pep8 在mac終端輸入python可進入cpython互動式直譯器,利用print函式向世界打招呼吧 print hello,world 執行結果 hello,world input函式用於接收使用者輸入,先將輸入儲存在變數中,然後列印這個變數 d...
DW機器學習task1
邏輯回歸是乙個分類演算法,它可以處理二元分類以及多元分類。雖然它名字裡面有 回歸 兩個字,卻不是乙個回歸演算法。那為什麼有 回歸 這個誤導性的詞呢?個人認為,雖然邏輯回歸是分類模型,但是它的原理裡面卻殘留著回歸模型的影子,本文對邏輯回歸原理做乙個總結。從線性回歸到邏輯回歸 我們知道,線性回歸的模型是...
python基礎 打卡task1
a 1type a b float a b 1.0 type b c 1.5type c d int c d 1 type d 2 整型 布林型 a 0type a b bool a type b c flase type c d int c type d 3 浮點型 布林型 a 1.5type a...