集成学习Python-随机森林、SVM、KNN
Ensemble learning Python-Random Forest, SVM, KNN
我正在尝试集成分类器随机森林、SVM 和 KNN。
在这里,我将 VotingClassifier 与 GridSearchCV 结合使用。
如果我尝试逻辑回归、随机森林和高斯
,代码工作正常
clf11 = LogisticRegression(random_state=1)
clf12 = RandomForestClassifier(random_state=1)
clf13 = GaussianNB()
但我不知道我在下面的代码中错了什么,因为我是初学者。
这是我尝试使用随机森林、KNN 和 SVM
from sklearn.model_selection import GridSearchCV
from sklearn.linear_model import LogisticRegression
from sklearn.naive_bayes import GaussianNB
from sklearn.ensemble import VotingClassifier
clf11 = RandomForestClassifier(n_estimators=100,criterion="entropy")
clf12 = KNeighborsClassifier(n_neighbors=best_k)
clf13 = SVC(kernel='rbf', probability=True)
eclf1 = VotingClassifier(estimators=[('lr', clf11), ('rf', clf12), ('gnb', clf13)],voting='hard')
params = {'lr__C': [1.0, 100.0], 'rf__n_estimators': [20, 200]}
grid1 = GridSearchCV(estimator=eclf1, param_grid=params, cv=30)
grid1.fit(X_train,y_train)
grid1_predicted = grid1.predict(X_test)
print('Accuracy score : {}%'.format(accuracy_score(y_test,grid1_predicted)*100))
scores_dict['Logistic-Random-Gaussian'] = accuracy_score(y_test,grid1_predicted)*100
每当我运行这个我得到
Invalid parameter estimator VotingClassifier.
这些是我遇到的错误。
是否可以集成随机森林、svm 和 KNN?
不然还有什么办法吗?
发布的代码如下:
clf11 = RandomForestClassifier(n_estimators=100,criterion="entropy")
clf12 = KNeighborsClassifier(n_neighbors=best_k)
clf13 = SVC(kernel='rbf', probability=True)
eclf1 = VotingClassifier(estimators=[('lr', clf11), ('rf', clf12), ('gnb', clf13)],voting='hard')
params = {'lr__C': [1.0, 100.0], 'rf__n_estimators': [20, 200]}
在这里,您为 RandomForestClassifier 使用了 hiperparameters C,这将不起作用。
您必须使用对正在使用的分类器有效的高级参数。也许估计器的名称“lr”、“rf”和“gnb”显示为其他更合适的名称,然后选择对不同类型的分类器有效的 hiperparameters
以下方法可行:
clf11 = RandomForestClassifier(n_estimators=100,criterion="entropy")
clf12 = KNeighborsClassifier(n_neighbors=best_k)
clf13 = SVC(kernel='rbf', probability=True)
eclf1 = VotingClassifier(estimators=[('rf', clf11), ('knn', clf12), ('svc', clf13)],voting='hard')
params = {'svc__C': [1.0, 100.0], 'rf__n_estimators': [20, 200]}
我正在尝试集成分类器随机森林、SVM 和 KNN。 在这里,我将 VotingClassifier 与 GridSearchCV 结合使用。 如果我尝试逻辑回归、随机森林和高斯
,代码工作正常clf11 = LogisticRegression(random_state=1)
clf12 = RandomForestClassifier(random_state=1)
clf13 = GaussianNB()
但我不知道我在下面的代码中错了什么,因为我是初学者。 这是我尝试使用随机森林、KNN 和 SVM
from sklearn.model_selection import GridSearchCV
from sklearn.linear_model import LogisticRegression
from sklearn.naive_bayes import GaussianNB
from sklearn.ensemble import VotingClassifier
clf11 = RandomForestClassifier(n_estimators=100,criterion="entropy")
clf12 = KNeighborsClassifier(n_neighbors=best_k)
clf13 = SVC(kernel='rbf', probability=True)
eclf1 = VotingClassifier(estimators=[('lr', clf11), ('rf', clf12), ('gnb', clf13)],voting='hard')
params = {'lr__C': [1.0, 100.0], 'rf__n_estimators': [20, 200]}
grid1 = GridSearchCV(estimator=eclf1, param_grid=params, cv=30)
grid1.fit(X_train,y_train)
grid1_predicted = grid1.predict(X_test)
print('Accuracy score : {}%'.format(accuracy_score(y_test,grid1_predicted)*100))
scores_dict['Logistic-Random-Gaussian'] = accuracy_score(y_test,grid1_predicted)*100
每当我运行这个我得到
Invalid parameter estimator VotingClassifier.
这些是我遇到的错误。
是否可以集成随机森林、svm 和 KNN?
不然还有什么办法吗?
发布的代码如下:
clf11 = RandomForestClassifier(n_estimators=100,criterion="entropy")
clf12 = KNeighborsClassifier(n_neighbors=best_k)
clf13 = SVC(kernel='rbf', probability=True)
eclf1 = VotingClassifier(estimators=[('lr', clf11), ('rf', clf12), ('gnb', clf13)],voting='hard')
params = {'lr__C': [1.0, 100.0], 'rf__n_estimators': [20, 200]}
在这里,您为 RandomForestClassifier 使用了 hiperparameters C,这将不起作用。
您必须使用对正在使用的分类器有效的高级参数。也许估计器的名称“lr”、“rf”和“gnb”显示为其他更合适的名称,然后选择对不同类型的分类器有效的 hiperparameters
以下方法可行:
clf11 = RandomForestClassifier(n_estimators=100,criterion="entropy")
clf12 = KNeighborsClassifier(n_neighbors=best_k)
clf13 = SVC(kernel='rbf', probability=True)
eclf1 = VotingClassifier(estimators=[('rf', clf11), ('knn', clf12), ('svc', clf13)],voting='hard')
params = {'svc__C': [1.0, 100.0], 'rf__n_estimators': [20, 200]}