python的sklearn模塊實踐一下Logistic迴歸模型

下面通過python的sklearn模塊實踐一下Logistic迴歸模型。

(4.1)Logistic迴歸模型的函數及參數如下所示:

import sklearn

sklearn.linear_model.LogisticRegression(penalty='l2', 
          dual=False, tol=0.0001, C=1.0, fit_intercept=True, 
          intercept_scaling=1, class_weight=None, 
          random_state=None, solver='liblinear', max_iter=100, 
          multi_class='ovr', verbose=0, warm_start=False, n_jobs=1)

 

(4.2)LogisticRegression類的常用方法如下所示:

  • fit(X, y, sample_weight=None)
    • 擬合模型,用來訓練LR分類器,其中X是訓練樣本,y是對應的標記向量;
    • 返回對象,self;
  • fit_transform(X, y=None, **fit_params)
    • fit與transform的結合,先fit後transform。返回X_new:numpy矩陣;
  • predict(X)
    • 用來預測樣本,也就是分類,X是測試集。返回array;
  • predict_proba(X)
    • 輸出分類概率。返回每種類別的概率,按照分類類別順序給出。如果是多分類問題,multi_class="multinomial",則會給出樣本對於每種類別的概率;
    • 返回array-like;
  • score(X, y, sample_weight=None)
    • 返回給定測試集合的平均準確率(mean accuracy),浮點型數值;
    • 對於多個分類返回,則返回每個類別的準確率組成的哈希矩陣;

 

(4.3)實戰

(4.3.1)加載模塊

import numpy as np
from sklearn import linear_model, datasets
from sklearn.model_selection import train_test_split

 

(4.3.2)加載數據集

# 2. 加載數據

iris = datasets.load_iris()
x_data = iris.data
y_label = [1 if i>=1 else 0 for i in iris.target]
print("x_data: \n", x_data[:10])
print("\n")
print("label_data: \n",y_label[:10])

x_data數據有4個特徵,y的值有兩類(0和1);

 

(4.3.3)拆分數據集爲:訓練集和測試集

# 3. 拆分數據集

X_train, X_test, Y_train, Y_test = train_test_split(x_data, y_label, test_size=0.3, random_state=0)

 

(4.3.4)訓練模型

# 4. 訓練邏輯迴歸模型

log_reg = linear_model.LogisticRegression()
log_reg.fit(X_train, Y_train)

 

(4.3.5)在測試數據集上預測效果

# 5. 預測

test_data_proba = log_reg.predict_proba(X_test)
accuracy = log_reg.score(X_test, Y_test)

print("test data proba value: \n", test_data_proba[:10])
print("\n"*2)
print("test data true value: \n", Y_test[:10])
print("\n"*2)
print("test data accuracy is :", accuracy)

結果如下所示:

(a)預測的概率值,第一列爲預測爲0的概率,第二列預測爲1的概率;

(b)可以看到Logistic模型的效果還不錯哦,在測試集上的準確率爲100%。

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章