Python很吃版本,我使用的版本如下:
Python 3.10 sklearn 1.2.1 |
以下介紹使用scikit-learn使用羅吉斯回歸(logistic regression)進行訓練與預測的方式,總共分成四大步驟:
- 建立資料
- 進行訓練
- 進行驗證
- 進行預測
最後提供完整程式碼
羅吉斯回歸是分類器,跟回歸不一樣,雖然它名字有回歸的字眼。既然是分類器,我們就選用sklearn裡面提供的資料來進行展示。
步驟一: 建立資料
#建立資料
from sklearn import datasets
from sklearn.model_selection import train_test_split
#使用鳶尾花資料集
iris = datasets.load_iris()
x = iris.data
y= iris.target
print("鳶尾花第1筆資料: ",x[0])
#拆訓練資料與測試資料
xTrain, xTest, yTrain, yTest = train_test_split(x,y,test_size=0.2,random_state=0)
test_size=0.2 就是測試資料比例為20%,random_state=0代表每次都用同一筆資料,不會隨機選
步驟二: 進行訓練
#模型訓練
from sklearn.linear_model import LogisticRegression
#logistic regression預設的solver是lbfgs(Limited-memory Broyden–Fletcher–Goldfarb–Shanno Algorithm), 最多訓練迭代次數預設100 (max_iter)
logisticModel = LogisticRegression(solver='lbfgs', max_iter=200);
logisticModel.fit(xTrain,yTrain);
因為我使用max_iter=100時出現錯誤,錯誤是跟我說無法收斂,所以我這邊調成200,就可以正確訓練
步驟三:進行驗證與進行預測
#預測結果
predictedAnswer = logisticModel.predict(xTest);
print("預測結果: ",predictedAnswer);
#準確度分析
print("訓練資料準確度:",logisticModel.score(xTrain,yTrain));
print("測試資料準確度:",logisticModel.score(xTest,yTest));
結果如下:
以上就是羅吉斯回歸的步驟,完整程式碼如下:
#建立資料
from sklearn import datasets
from sklearn.model_selection import train_test_split
#使用鳶尾花資料集
iris = datasets.load_iris()
x = iris.data
y= iris.target
#拆訓練資料與測試資料
xTrain, xTest, yTrain, yTest = train_test_split(x,y,test_size=0.2,random_state=0)
#模型訓練
from sklearn.linear_model import LogisticRegression
#logistic regression預設的solver是lbfgs(Limited-memory Broyden–Fletcher–Goldfarb–Shanno Algorithm), 最多訓練迭代次數預設100 (max_iter)
logisticModel = LogisticRegression(solver='lbfgs', max_iter=200);
logisticModel.fit(xTrain,yTrain);
#預測結果
predictedAnswer = logisticModel.predict(xTest);
print("預測結果: ",predictedAnswer);
#準確度分析
print("訓練資料準確度:",logisticModel.score(xTrain,yTrain));
print("測試資料準確度:",logisticModel.score(xTest,yTest));
如有任何問題歡迎留言交流
留言列表