问题描述
说我有一个训练数据集和一个测试数据集(都是已知的),它们之间存在一些差异。
现在,我有兴趣找出模型的哪些参数可以更好地概括测试数据集(可选),但仍能获得一定的准确度。培训占70%。
我没有发现任何明显的方法可以对超参数进行过拟合实验,并且make_scorer选项似乎仅限于评估每个点的评估误差。
-
如果有一个聪明的方法可以解决这个问题,则可以在修改模型之间运行一段代码。
perceptron = Perceptron(random_state=0)
mnb = gridsearchcv(perceptron,param_grid={
'penalty': ['none','l1','l2','elasticnet'],'eta0': [0.05,0.1,0.5,1.0],'alpha': [0.00005,0.0001,0.001,0.005],'max_iter': [50,100,500,1000]},scoring='f1')
print("PERFORMING GRIDSEARCH")
mnb.fit(X_train,y_train)
print ("Best params: {}".format(mnb.best_params_))
nb = Perceptron(**mnb.best_params_)
nb.fit(X_train,y_train)
print(nb.score(X_train,y_train))
y_pred = nb.predict(X_test)
print("CALculaTING ACCURACY")
print('accuracy %s' % accuracy_score(y_pred,y_test))
print(classification_report(y_test,y_pred,labels=[0,1]))
https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html
https://scikit-learn.org/stable/modules/generated/sklearn.metrics.make_scorer.html
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)