Which of the following method is used for multiclass classification? code example
Example: multiclass classification model
knn=KNeighborsClassifier()
svc=SVC()
lr=LogisticRegression()
dt=DecisionTreeClassifier()
gnb=GaussianNB()
rfc=RandomForestClassifier()
xgb=XGBClassifier()
gbc=GradientBoostingClassifier()
ada=AdaBoostClassifier()
-------------------------------------------------------------------
models=[]
models.append(('KNeighborsClassifier',knn))
models.append(('SVC',svc))
models.append(('LogisticRegression',lr))
models.append(('DecisionTreeClassifier',dt))
models.append(('GaussianNB',gnb))
models.append(('RandomForestClassifier',rfc))
models.append(('XGBClassifier',xgb))
--------------------------------------------------------------------
from sklearn.metrics import classification_report,confusion_matrix,accuracy_score,roc_curve,auc,recall_score
--------------------------------------------------------------------
Model=[]
score=[]
cv=[]
for name,model in models:
print('*****************',name,'*******************')
print('\n')
Model.append(name)
model.fit(x_train,y_train)
print(model)
pre=model.predict(x_test)
print('\n')
AS=accuracy_score(y_test,pre)
print('Accuracy_score -',AS)
score.append(AS*100)
print('\n')
sc=cross_val_score(model,x,y,cv=10,scoring='accuracy').mean()
print('cross_val_score -',sc)
cv.append(sc*100)
print('\n')
print('classification report\n',classification_report(y_test,pre))
print('\n')
cm=confusion_matrix(y_test,pre)
print(cm)
print('\n')
plt.figure(figsize=(10,40))
plt.subplot(911)
plt.title(name)
print(sns.heatmap(cm,annot=True))
---------------------------------------------------------------------------
result=pd.DataFrame({'Model':Model,'Accuracy_score':score,'Cross_val_score':cv})
result