逻辑回归实验
邏輯回歸實驗
文章目錄
- 邏輯回歸實驗
- 實驗說明
- 實驗步驟
- 參數優化
實驗說明
雖然模型名字叫做邏輯回歸,實際上我們經常用它來做分類任務。這次的數據集我們使用的是 sklearn 包中自帶的紅酒數據集。
- 實驗環境:Pycharm
- Python版本:3.6
- 需要的第三方庫:sklearn
實驗步驟
一個簡單的機器學習實驗基本就是那六個步驟,這里不再提及了。
關于訓練集和測試集的劃分我們使用的是留出法,最后的結果我們使用準確率來進行評估。
代碼如下:
# 邏輯回歸,紅酒數據集from sklearn.datasets import load_wine from sklearn.linear_model import LogisticRegression from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score# 加載數據集 wind_data = load_wine() x = wind_data.data y = wind_data.target # 拆分數據集 x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=10)# 創建模型 lr = LogisticRegression(solver='saga',multi_class='ovr',penalty='l2',max_iter=10000,random_state=10 ) # 訓練模型 lr.fit(x_train, y_train)# 模型預測 lr_predict = lr.predict(x_test) # 模型評價 a_score = accuracy_score(y_test, lr_predict) print("accuracy_score: ", a_score)此時的模型預測準確率為0.89
參數優化
雖然模型的準確率已經很不錯了,但是我們仍然可以對其進行優化。
正則化選擇參數 penalty 我們考慮使用 L1 正則化,優化算法選擇參數 solver 使用 liblinear,分類方式選擇參數 multi_class 使用 ovr,類型權重參數 class_weight 使用 balanced,隨機種子為200。
如果想要知道具體怎么進行優化,可以參考這一篇博客 sklearn邏輯回歸(Logistic Regression,LR)類庫使用小結
# 邏輯回歸,紅酒數據集from sklearn.datasets import load_wine from sklearn.linear_model import LogisticRegression from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score# 加載數據集 wind_data = load_wine() x = wind_data.data y = wind_data.target # 拆分數據集 x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=200)# 創建模型 lr = LogisticRegression(solver='liblinear',multi_class='ovr',penalty='l1',max_iter=10000,class_weight='balanced',random_state=200 ) # 訓練模型 lr.fit(x_train, y_train)# 模型預測 lr_predict = lr.predict(x_test) # 模型評價 a_score = accuracy_score(y_test, lr_predict) print("accuracy_score: ", a_score)可以看到,模型預測的準確率達到了 0.97,非常棒了。
總結
- 上一篇: Lasso回归实验
- 下一篇: 用SVC模型完成对手写数字的分类