导入
多类别逻辑回归分类简介
使用逻辑回归学习多分类的基本知识。
1iris_df = pd.read_csv("Iris.csv") 2print(iris_df.head())
1iris_df.drop('Id', axis=1, inplace=True) # dropping Id column 2iris_df['target']=iris_df.Species.astype('category').cat.codes # creating codes for categories in target column 3# display taget values and their respective counts 4print(iris_df['target'].value_counts().to_string())
1X = iris_df.drop(["Species", "target"], axis=1) # features or predictors 2y = iris_df.target # target 3print(X[0:2], y[0:2]) 4 5# Feature scaling 6from sklearn.preprocessing import StandardScaler, MinMaxScaler 7# scaler = StandardScaler() 8scaler = MinMaxScaler() 9X = scaler.fit_transform(X) 10print(X[0:2], y[0:2])
1from sklearn.linear_model import LogisticRegression 2# Creating model instances 3logR_ovr = LogisticRegression(multi_class='ovr') # one-vs-rest 4# fitting the model 5logR_ovr.fit(X,y) 6# Accuracy Score 7print("Score when multi_class='ovr':",logR_ovr.score(X,y))
1from sklearn import metrics 2# predictions 3pred_ovr = logR_ovr.predict(X) 4# Confusion matrix and classification report 5print("multi_class='ovr'\n") 6print(metrics.confusion_matrix(y,pred_ovr,labels=[0, 1, 2])) 7print(metrics.classification_report(y,pred_ovr,labels=[0, 1, 2]))
1from sklearn.linear_model import LogisticRegression 2# Creating model instances 3logR_mul = LogisticRegression(multi_class='multinomial') # multinomial 4# fitting both models 5logR_mul.fit(X,y) 6# Accuracy score 7print("Score when multi_class='multinomial':",logR_mul.score(X,y))
1from sklearn import metrics 2# predictions 3pred_mul = logR_mul.predict(X) 4# Confusion matrix and classification report 5print("multi_class='multinomial'\n") 6print(metrics.confusion_matrix(y,pred_mul,labels=[0, 1, 2])) 7print(metrics.classification_report(y,pred_mul,labels=[0, 1, 2]))
1# probabilities when using one-vs-rest 2print(logR_ovr.predict_proba(X)[:2]) 3# probabilities when using multinomial 4print(logR_mul.predict_proba(X)[:2])