天天看點

基于LogisticRegression的鸢尾花分類

LogisticRegression中文叫做邏輯回歸,是一種基礎、常用的分類方法。

2018年8月24日筆記

1.資料集

Iris(鸢尾花)資料集是多重變量分析的資料集。

資料集包含150行資料,分為3類,每類50行資料。

每行資料包括4個屬性:Sepal Length(花萼長度)、Sepal Width(花萼寬度)、Petal Length(花瓣長度)、Petal Width(花瓣寬度)。可通過這4個屬性預測鸢尾花屬于3個種類的哪一類。

樣本資料局部截圖:

基于LogisticRegression的鸢尾花分類

Iris.png

擷取150個樣本資料的3種方法:

1.完整的樣本資料Iris.csv檔案下載下傳連結:

https://pan.baidu.com/s/16N0ivGWFrmc73ustPLWPZA

密碼: ugun

2.資料集連結:

https://gist.github.com/curran/a08a1080b88344b0c8a7

3.在sklearn的skleanrn庫中自帶了iris資料集,可以導入sklearn庫的datasets檔案,調用datasets檔案中的load_iris方法就可以獲得iris資料集。

本文采用的是第3種方法,直接從sklearn庫中擷取資料。

2.觀察資料

鸢尾花資料集詳細中文解釋連結:

http://sklearn.apachecn.org/cn/0.19.0/datasets/index.html#iris

網頁中内容如下圖所示:

基于LogisticRegression的鸢尾花分類

image.png

檢視資料集對象的屬性和方法,代碼如下:

from sklearn.datasets import load_iris
dir(load_iris())
           

上面一段代碼的運作結果如下:

['DESCR', 'data', 'feature_names', 'target', 'target_names']

檢視資料集的描述,即列印資料集對象的DESCR屬性,代碼如下:

from sklearn.datasets import load_iris
print(load_iris().DESCR)
           

與上圖中文文檔的圖對照閱讀,可以加強對資料集的了解。

上面一段代碼的運作結果如下圖所示:

基于LogisticRegression的鸢尾花分類

将150個樣本4個特征組成的矩陣指派給變量X,變量X為大寫字母的原因是數學中表示矩陣使用大寫字母。

将150個樣本1個預測目标值組成的矩陣指派給變量y。

載入資料集的代碼如下:

from sklearn.datasets import load_iris
X = load_iris().data
y = load_iris().target
           

3.邏輯回歸模型

利用交叉驗證方法得出模型得分。

代碼如下:

from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import ShuffleSplit

logisticRegression_model = LogisticRegression()
cv_split = ShuffleSplit(n_splits=5, train_size=0.7, test_size=0.2)
score_ndarray = cross_val_score(logisticRegression_model, X, y, cv=cv_split)
print(score_ndarray)
score_ndarray.mean()
           
基于LogisticRegression的鸢尾花分類

交叉驗證.png

繼續閱讀