별책 부록 1: <모두의 딥러닝 - 개정 3판>¶
가장 많이 쓰이는 머신 러닝 알고리즘 TOP 10¶
딥러닝 이외의 머신 러닝 알고리즘¶
딥러닝은 머신 러닝의 여러 가지 알고리즘 중 하나입니다. 그러면 딥러닝 이외의 머신 러닝 알고리즘은 어떤것들이 있으며 어떻게 이용할 수 있을까요? 딥러닝은 일반적으로 과적합을 피하기 위해 많은 데이터를 필요로 합니다. 딥러닝을 이용하면 복잡하고 어려운 학습을 해낼 수 있지만, 이로 인해 때로 좋은 사양의 컴퓨터가 필요하고 긴 학습 시간이 소요될 때도 있습니다. 데이터가 딥러닝을 구현하기에 충분하게 확보되지 않았거나 빠른 결과가 필요하다면 간단한 머신 러닝 기법을 이용하는 것이 더 바람직할 수 있습니다. 여기서는 딥러닝 이외에 가장 많이 사용되는 머신 러닝 모델 10개를 골라 그림과 함께 그 내용을 알아보고 실습해 보겠습니다.
실습을 위한 준비 사항¶
In [1]:
Copied!
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split, cross_val_score, StratifiedKFold
from matplotlib import pyplot
from sklearn.preprocessing import StandardScaler
# 피마 인디언 당뇨병 데이터셋을 불러옵니다.
df = pd.read_csv('./data/pima-indians-diabetes3.csv')
# 세부 정보를 X로 지정합니다.
X = df.iloc[:,0:8]
# 당뇨병 여부를 Y로 지정합니다.
y = df.iloc[:,8]
ss = StandardScaler()
scaled_X = pd.DataFrame(ss.fit_transform(X),columns = X.columns)
fig, ax = plt.subplots(1, 2, figsize=(12, 4))
X.plot(kind='kde', title='Raw data', ax=ax[0])
scaled_X.plot(kind='kde', title='StandardScaler', ax=ax[1])
plt.show()
# 학습셋과 테스트셋을 75:25의 비율로 나눕니다.
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 0)
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split, cross_val_score, StratifiedKFold
from matplotlib import pyplot
from sklearn.preprocessing import StandardScaler
# 피마 인디언 당뇨병 데이터셋을 불러옵니다.
df = pd.read_csv('./data/pima-indians-diabetes3.csv')
# 세부 정보를 X로 지정합니다.
X = df.iloc[:,0:8]
# 당뇨병 여부를 Y로 지정합니다.
y = df.iloc[:,8]
ss = StandardScaler()
scaled_X = pd.DataFrame(ss.fit_transform(X),columns = X.columns)
fig, ax = plt.subplots(1, 2, figsize=(12, 4))
X.plot(kind='kde', title='Raw data', ax=ax[0])
scaled_X.plot(kind='kde', title='StandardScaler', ax=ax[1])
plt.show()
# 학습셋과 테스트셋을 75:25의 비율로 나눕니다.
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.25, random_state = 0)
1. 결정 트리¶
In [2]:
Copied!
# 결정 트리 분류기를 불러 옵니다.
from sklearn.tree import DecisionTreeClassifier
# 학습 환경을 설정합니다.
classifier= DecisionTreeClassifier()
classifier.fit(X_train, y_train)
# 테스트셋에 적용합니다.
y_pred = classifier.predict(X_test)
# 계층별 교차 검증 환경을 설정합니다.
skf=StratifiedKFold(n_splits=10, shuffle=True)
# 교차 검증을 통해 정확도를 계산합니다.
accuracies = cross_val_score(estimator = classifier, X = X_train, y = y_train, cv = skf)
# 정확도와 표준편차를 출력합니다.
print("Accuracy: {:.2f} %".format(accuracies.mean()*100))
print("Standard Deviation: {:.2f} %".format(accuracies.std()*100))
# 결정 트리 분류기를 불러 옵니다.
from sklearn.tree import DecisionTreeClassifier
# 학습 환경을 설정합니다.
classifier= DecisionTreeClassifier()
classifier.fit(X_train, y_train)
# 테스트셋에 적용합니다.
y_pred = classifier.predict(X_test)
# 계층별 교차 검증 환경을 설정합니다.
skf=StratifiedKFold(n_splits=10, shuffle=True)
# 교차 검증을 통해 정확도를 계산합니다.
accuracies = cross_val_score(estimator = classifier, X = X_train, y = y_train, cv = skf)
# 정확도와 표준편차를 출력합니다.
print("Accuracy: {:.2f} %".format(accuracies.mean()*100))
print("Standard Deviation: {:.2f} %".format(accuracies.std()*100))
Accuracy: 66.15 % Standard Deviation: 5.05 %
2. 랜덤 포레스트¶
In [3]:
Copied!
# 랜덤 포레스트 분류기를 불러 옵니다.
from sklearn.ensemble import RandomForestClassifier
# 학습 환경을 설정합니다.
classifier= RandomForestClassifier(n_estimators = 50)
classifier.fit(X_train, y_train)
# 테스트셋에 적용합니다.
y_pred = classifier.predict(X_test)
# 계층별 교차 검증 환경을 설정합니다.
skf=StratifiedKFold(n_splits=10, shuffle=True)
# 교차 검증을 통해 정확도를 계산합니다.
accuracies = cross_val_score(estimator = classifier, X = X_train, y = y_train, cv = skf)
# 정확도와 표준편차를 출력합니다.
print("Accuracy: {:.2f} %".format(accuracies.mean()*100))
print("Standard Deviation: {:.2f} %".format(accuracies.std()*100))
# 랜덤 포레스트 분류기를 불러 옵니다.
from sklearn.ensemble import RandomForestClassifier
# 학습 환경을 설정합니다.
classifier= RandomForestClassifier(n_estimators = 50)
classifier.fit(X_train, y_train)
# 테스트셋에 적용합니다.
y_pred = classifier.predict(X_test)
# 계층별 교차 검증 환경을 설정합니다.
skf=StratifiedKFold(n_splits=10, shuffle=True)
# 교차 검증을 통해 정확도를 계산합니다.
accuracies = cross_val_score(estimator = classifier, X = X_train, y = y_train, cv = skf)
# 정확도와 표준편차를 출력합니다.
print("Accuracy: {:.2f} %".format(accuracies.mean()*100))
print("Standard Deviation: {:.2f} %".format(accuracies.std()*100))
Accuracy: 74.83 % Standard Deviation: 5.41 %
3. 가우시안 나이브 베이즈¶
In [4]:
Copied!
# 가우시안 나이브 베이즈 분류기를 불러옵니다.
from sklearn.naive_bayes import GaussianNB
# 학습 환경을 설정합니다.
classifier = GaussianNB()
classifier.fit(X_train, y_train)
# 테스트셋에 적용합니다.
y_pred = classifier.predict(X_test)
# 계층별 교차 검증 환경을 설정합니다.
skf=StratifiedKFold(n_splits=10, shuffle=True)
# 교차 검증을 통해 정확도를 계산합니다.
accuracies = cross_val_score(estimator = classifier, X = X_train, y = y_train, cv = skf)
# 정확도와 표준편차를 출력합니다.
print("Accuracy: {:.2f} %".format(accuracies.mean()*100))
print("Standard Deviation: {:.2f} %".format(accuracies.std()*100))
# 가우시안 나이브 베이즈 분류기를 불러옵니다.
from sklearn.naive_bayes import GaussianNB
# 학습 환경을 설정합니다.
classifier = GaussianNB()
classifier.fit(X_train, y_train)
# 테스트셋에 적용합니다.
y_pred = classifier.predict(X_test)
# 계층별 교차 검증 환경을 설정합니다.
skf=StratifiedKFold(n_splits=10, shuffle=True)
# 교차 검증을 통해 정확도를 계산합니다.
accuracies = cross_val_score(estimator = classifier, X = X_train, y = y_train, cv = skf)
# 정확도와 표준편차를 출력합니다.
print("Accuracy: {:.2f} %".format(accuracies.mean()*100))
print("Standard Deviation: {:.2f} %".format(accuracies.std()*100))
Accuracy: 75.88 % Standard Deviation: 4.29 %
4. K-최근접 이웃¶
In [5]:
Copied!
# K-최근접 이웃 분류기를 불러옵니다.
from sklearn.neighbors import KNeighborsClassifier
# 학습 환경을 설정합니다.
classifier = KNeighborsClassifier()
classifier.fit(X_train, y_train)
# 테스트셋에 적용합니다.
y_pred = classifier.predict(X_test)
# 계층별 교차 검증 환경을 설정합니다.
skf=StratifiedKFold(n_splits=10, shuffle=True)
# 교차 검증을 통해 정확도를 계산합니다.
accuracies = cross_val_score(estimator = classifier, X = X_train, y = y_train, cv = skf)
# 정확도와 표준편차를 출력합니다.
print("Accuracy: {:.2f} %".format(accuracies.mean()*100))
print("Standard Deviation: {:.2f} %".format(accuracies.std()*100))
# K-최근접 이웃 분류기를 불러옵니다.
from sklearn.neighbors import KNeighborsClassifier
# 학습 환경을 설정합니다.
classifier = KNeighborsClassifier()
classifier.fit(X_train, y_train)
# 테스트셋에 적용합니다.
y_pred = classifier.predict(X_test)
# 계층별 교차 검증 환경을 설정합니다.
skf=StratifiedKFold(n_splits=10, shuffle=True)
# 교차 검증을 통해 정확도를 계산합니다.
accuracies = cross_val_score(estimator = classifier, X = X_train, y = y_train, cv = skf)
# 정확도와 표준편차를 출력합니다.
print("Accuracy: {:.2f} %".format(accuracies.mean()*100))
print("Standard Deviation: {:.2f} %".format(accuracies.std()*100))
Accuracy: 72.91 % Standard Deviation: 4.53 %
5. 에이다 부스트¶
In [6]:
Copied!
# 에이다 부스트 분류기를 불러옵니다.
from sklearn.ensemble import AdaBoostClassifier
# 학습 환경을 설정합니다.
classifier = AdaBoostClassifier()
classifier.fit(X_train, y_train)
# 테스트셋에 적용합니다.
y_pred = classifier.predict(X_test)
# 계층별 교차 검증 환경을 설정합니다.
skf=StratifiedKFold(n_splits=10, shuffle=True)
# 교차 검증을 통해 정확도를 계산합니다.
accuracies = cross_val_score(estimator = classifier, X = X_train, y = y_train, cv = skf)
# 정확도와 표준편차를 출력합니다.
print("Accuracy: {:.2f} %".format(accuracies.mean()*100))
print("Standard Deviation: {:.2f} %".format(accuracies.std()*100))
# 에이다 부스트 분류기를 불러옵니다.
from sklearn.ensemble import AdaBoostClassifier
# 학습 환경을 설정합니다.
classifier = AdaBoostClassifier()
classifier.fit(X_train, y_train)
# 테스트셋에 적용합니다.
y_pred = classifier.predict(X_test)
# 계층별 교차 검증 환경을 설정합니다.
skf=StratifiedKFold(n_splits=10, shuffle=True)
# 교차 검증을 통해 정확도를 계산합니다.
accuracies = cross_val_score(estimator = classifier, X = X_train, y = y_train, cv = skf)
# 정확도와 표준편차를 출력합니다.
print("Accuracy: {:.2f} %".format(accuracies.mean()*100))
print("Standard Deviation: {:.2f} %".format(accuracies.std()*100))
Accuracy: 71.36 % Standard Deviation: 4.84 %
6. 이차 판별 분석¶
In [7]:
Copied!
# 이차 판별 분석 분류기를 불러옵니다.
from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis
# 학습 환경을 설정합니다.
classifier = QuadraticDiscriminantAnalysis()
classifier.fit(X_train, y_train)
# 테스트셋에 적용합니다.
y_pred = classifier.predict(X_test)
# 계층별 교차 검증 환경을 설정합니다.
skf=StratifiedKFold(n_splits=10, shuffle=True)
# 교차 검증을 통해 정확도를 계산합니다.
accuracies = cross_val_score(estimator = classifier, X = X_train, y = y_train, cv = skf)
# 정확도와 표준편차를 출력합니다.
print("Accuracy: {:.2f} %".format(accuracies.mean()*100))
print("Standard Deviation: {:.2f} %".format(accuracies.std()*100))
# 이차 판별 분석 분류기를 불러옵니다.
from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis
# 학습 환경을 설정합니다.
classifier = QuadraticDiscriminantAnalysis()
classifier.fit(X_train, y_train)
# 테스트셋에 적용합니다.
y_pred = classifier.predict(X_test)
# 계층별 교차 검증 환경을 설정합니다.
skf=StratifiedKFold(n_splits=10, shuffle=True)
# 교차 검증을 통해 정확도를 계산합니다.
accuracies = cross_val_score(estimator = classifier, X = X_train, y = y_train, cv = skf)
# 정확도와 표준편차를 출력합니다.
print("Accuracy: {:.2f} %".format(accuracies.mean()*100))
print("Standard Deviation: {:.2f} %".format(accuracies.std()*100))
Accuracy: 72.94 % Standard Deviation: 8.03 %
7. 서포트 벡터 머신¶
In [8]:
Copied!
# 서포트 벡터 머신 분류기를 불러옵니다.
from sklearn.svm import SVC
# 학습 환경을 설정합니다.
classifier = SVC(kernel = 'linear')
classifier.fit(X_train, y_train)
# 테스트셋에 적용합니다.
y_pred = classifier.predict(X_test)
# 계층별 교차 검증 환경을 설정합니다.
skf=StratifiedKFold(n_splits=10, shuffle=True)
# 교차 검증을 통해 정확도를 계산합니다.
accuracies = cross_val_score(estimator = classifier, X = X_train, y = y_train, cv = skf)
# 정확도와 표준편차를 출력합니다.
print("Accuracy: {:.2f} %".format(accuracies.mean()*100))
print("Standard Deviation: {:.2f} %".format(accuracies.std()*100))
# 서포트 벡터 머신 분류기를 불러옵니다.
from sklearn.svm import SVC
# 학습 환경을 설정합니다.
classifier = SVC(kernel = 'linear')
classifier.fit(X_train, y_train)
# 테스트셋에 적용합니다.
y_pred = classifier.predict(X_test)
# 계층별 교차 검증 환경을 설정합니다.
skf=StratifiedKFold(n_splits=10, shuffle=True)
# 교차 검증을 통해 정확도를 계산합니다.
accuracies = cross_val_score(estimator = classifier, X = X_train, y = y_train, cv = skf)
# 정확도와 표준편차를 출력합니다.
print("Accuracy: {:.2f} %".format(accuracies.mean()*100))
print("Standard Deviation: {:.2f} %".format(accuracies.std()*100))
Accuracy: 75.51 % Standard Deviation: 3.58 %
8. 서포트 벡터 머신 - RBF 커널¶
In [9]:
Copied!
# 서포트 벡터 머신 분류기를 불러옵니다.
from sklearn.svm import SVC
# 학습 환경을 설정합니다.
classifier = SVC(kernel = 'rbf')
classifier.fit(X_train, y_train)
# 테스트셋에 적용합니다.
y_pred = classifier.predict(X_test)
# 계층별 교차 검증 환경을 설정합니다.
skf=StratifiedKFold(n_splits=10, shuffle=True)
# 교차 검증을 통해 정확도를 계산합니다.
accuracies = cross_val_score(estimator = classifier, X = X_train, y = y_train, cv = skf)
# 정확도와 표준편차를 출력합니다.
print("Accuracy: {:.2f} %".format(accuracies.mean()*100))
print("Standard Deviation: {:.2f} %".format(accuracies.std()*100))
# 서포트 벡터 머신 분류기를 불러옵니다.
from sklearn.svm import SVC
# 학습 환경을 설정합니다.
classifier = SVC(kernel = 'rbf')
classifier.fit(X_train, y_train)
# 테스트셋에 적용합니다.
y_pred = classifier.predict(X_test)
# 계층별 교차 검증 환경을 설정합니다.
skf=StratifiedKFold(n_splits=10, shuffle=True)
# 교차 검증을 통해 정확도를 계산합니다.
accuracies = cross_val_score(estimator = classifier, X = X_train, y = y_train, cv = skf)
# 정확도와 표준편차를 출력합니다.
print("Accuracy: {:.2f} %".format(accuracies.mean()*100))
print("Standard Deviation: {:.2f} %".format(accuracies.std()*100))
Accuracy: 75.86 % Standard Deviation: 3.37 %
9. 보팅¶
In [19]:
Copied!
# 보팅 분류기를 불러옵니다.
from sklearn.ensemble import VotingClassifier
# 학습 환경을 설정합니다.
clf1 = AdaBoostClassifier()
clf2 = RandomForestClassifier()
clf3 = SVC(kernel = 'linear')
classifier = VotingClassifier(estimators=[('lr', clf1), ('rf', clf2), ('gnb', clf3)])
classifier.fit(X_train, y_train)
# 테스트셋에 적용합니다.
y_pred = classifier.predict(X_test)
# 계층별 교차 검증 환경을 설정합니다.
skf=StratifiedKFold(n_splits=10, shuffle=True)
# 교차 검증을 통해 정확도를 계산합니다.
accuracies = cross_val_score(estimator = classifier, X = X_train, y = y_train, cv = skf)
# 정확도와 표준편차를 출력합니다.
print("Accuracy: {:.2f} %".format(accuracies.mean()*100))
print("Standard Deviation: {:.2f} %".format(accuracies.std()*100))
# 보팅 분류기를 불러옵니다.
from sklearn.ensemble import VotingClassifier
# 학습 환경을 설정합니다.
clf1 = AdaBoostClassifier()
clf2 = RandomForestClassifier()
clf3 = SVC(kernel = 'linear')
classifier = VotingClassifier(estimators=[('lr', clf1), ('rf', clf2), ('gnb', clf3)])
classifier.fit(X_train, y_train)
# 테스트셋에 적용합니다.
y_pred = classifier.predict(X_test)
# 계층별 교차 검증 환경을 설정합니다.
skf=StratifiedKFold(n_splits=10, shuffle=True)
# 교차 검증을 통해 정확도를 계산합니다.
accuracies = cross_val_score(estimator = classifier, X = X_train, y = y_train, cv = skf)
# 정확도와 표준편차를 출력합니다.
print("Accuracy: {:.2f} %".format(accuracies.mean()*100))
print("Standard Deviation: {:.2f} %".format(accuracies.std()*100))
Accuracy: 75.36 % Standard Deviation: 3.87 %
10. 배깅¶
In [21]:
Copied!
# 배깅 분류기를 불러옵니다.
from sklearn.ensemble import BaggingClassifier
# 학습 환경을 설정합니다.
classifier = BaggingClassifier(base_estimator=SVC(kernel = 'rbf'), n_estimators=10)
classifier.fit(X_train, y_train)
# 테스트셋에 적용합니다.
y_pred = classifier.predict(X_test)
# 계층별 교차 검증 환경을 설정합니다.
skf=StratifiedKFold(n_splits=10, shuffle=True)
# 교차 검증을 통해 정확도를 계산합니다.
accuracies = cross_val_score(estimator = classifier, X = X_train, y = y_train, cv = skf)
# 정확도와 표준편차를 출력합니다.
print("Accuracy: {:.2f} %".format(accuracies.mean()*100))
print("Standard Deviation: {:.2f} %".format(accuracies.std()*100))
# 배깅 분류기를 불러옵니다.
from sklearn.ensemble import BaggingClassifier
# 학습 환경을 설정합니다.
classifier = BaggingClassifier(base_estimator=SVC(kernel = 'rbf'), n_estimators=10)
classifier.fit(X_train, y_train)
# 테스트셋에 적용합니다.
y_pred = classifier.predict(X_test)
# 계층별 교차 검증 환경을 설정합니다.
skf=StratifiedKFold(n_splits=10, shuffle=True)
# 교차 검증을 통해 정확도를 계산합니다.
accuracies = cross_val_score(estimator = classifier, X = X_train, y = y_train, cv = skf)
# 정확도와 표준편차를 출력합니다.
print("Accuracy: {:.2f} %".format(accuracies.mean()*100))
print("Standard Deviation: {:.2f} %".format(accuracies.std()*100))
Accuracy: 75.69 % Standard Deviation: 3.15 %
여러 알고리즘 성능을 한눈에 비교하기¶
In [12]:
Copied!
# 사용할 분류기를 모두 지정합니다.
classifiers = [DecisionTreeClassifier(),
RandomForestClassifier(),
GaussianNB(),
KNeighborsClassifier(),
SVC(kernel = 'linear'),
SVC(kernel = 'rbf'),
AdaBoostClassifier(),
QuadraticDiscriminantAnalysis(),
VotingClassifier(estimators=[('1', AdaBoostClassifier()),
('2', RandomForestClassifier()),
('3', SVC(kernel = 'linear'))]),
BaggingClassifier(base_estimator=clf3, n_estimators=10, random_state=0)
]
# 각 분류기의 이름을 지정합니다.
classifier_names = ['D_tree',
'RF',
'GNB',
'KNN',
'Ada',
'QDA',
'SVM_l',
'SVM_k',
'Voting',
'Bagging'
]
# 결과가 저장될 리스트를 만듭니다.
modelaccuracies = []
modelmeans = []
modelnames = []
# 각 분류기를 실행하여 결과를 저장합니다.
classifier_data=zip(classifier_names, classifiers)
for classifier_name, classifier in classifier_data:
# 계층별 교차 검증 환경을 설정합니다.
skf=StratifiedKFold(n_splits=10, shuffle=True)
# 교차 검증을 통해 정확도를 계산합니다.
accuracies=cross_val_score(classifier, X = X_train, y = y_train, cv = skf)
# 정확도의 평균값을 출력합니다.
print("Mean accuracy of", classifier_name, ": {:.2f} %".format(accuracies.mean()*100))
# 결과를 저장합니다.
modelaccuracies.append(accuracies)
modelnames.append(classifier_name)
modelmeans.append(accuracies.mean()*100)
# 각 분류기별 정확도의 평균값을 막대 그래프로 출력합니다.
plt.figure(figsize=(10,5))
plt.ylim([60, 80])
plt.bar(modelnames, modelmeans);
# 각 분류기별 결과를 Box 그래프로 출력합니다.
fig = plt.figure(figsize=(10,5))
ax = fig.add_subplot(111)
ax.boxplot(modelaccuracies)
ax.set_xticklabels(modelnames)
plt.show()
# 사용할 분류기를 모두 지정합니다.
classifiers = [DecisionTreeClassifier(),
RandomForestClassifier(),
GaussianNB(),
KNeighborsClassifier(),
SVC(kernel = 'linear'),
SVC(kernel = 'rbf'),
AdaBoostClassifier(),
QuadraticDiscriminantAnalysis(),
VotingClassifier(estimators=[('1', AdaBoostClassifier()),
('2', RandomForestClassifier()),
('3', SVC(kernel = 'linear'))]),
BaggingClassifier(base_estimator=clf3, n_estimators=10, random_state=0)
]
# 각 분류기의 이름을 지정합니다.
classifier_names = ['D_tree',
'RF',
'GNB',
'KNN',
'Ada',
'QDA',
'SVM_l',
'SVM_k',
'Voting',
'Bagging'
]
# 결과가 저장될 리스트를 만듭니다.
modelaccuracies = []
modelmeans = []
modelnames = []
# 각 분류기를 실행하여 결과를 저장합니다.
classifier_data=zip(classifier_names, classifiers)
for classifier_name, classifier in classifier_data:
# 계층별 교차 검증 환경을 설정합니다.
skf=StratifiedKFold(n_splits=10, shuffle=True)
# 교차 검증을 통해 정확도를 계산합니다.
accuracies=cross_val_score(classifier, X = X_train, y = y_train, cv = skf)
# 정확도의 평균값을 출력합니다.
print("Mean accuracy of", classifier_name, ": {:.2f} %".format(accuracies.mean()*100))
# 결과를 저장합니다.
modelaccuracies.append(accuracies)
modelnames.append(classifier_name)
modelmeans.append(accuracies.mean()*100)
# 각 분류기별 정확도의 평균값을 막대 그래프로 출력합니다.
plt.figure(figsize=(10,5))
plt.ylim([60, 80])
plt.bar(modelnames, modelmeans);
# 각 분류기별 결과를 Box 그래프로 출력합니다.
fig = plt.figure(figsize=(10,5))
ax = fig.add_subplot(111)
ax.boxplot(modelaccuracies)
ax.set_xticklabels(modelnames)
plt.show()
Mean accuracy of D_tree : 67.35 % Mean accuracy of RF : 74.83 % Mean accuracy of GNB : 75.00 % Mean accuracy of KNN : 73.11 % Mean accuracy of Ada : 75.88 % Mean accuracy of QDA : 75.50 % Mean accuracy of SVM_l : 72.58 % Mean accuracy of SVM_k : 73.80 % Mean accuracy of Voting : 74.30 % Mean accuracy of Bagging : 74.82 %
In [ ]:
Copied!