使用 **kwargs 设置 n_estimators 参数(Scikit Learn)

我在尝试按照这个教程学习基于机器学习的预测,但我有两个问题?

问题1. 如何在下面的代码中设置n_estimators,否则它将始终使用默认值。

from sklearn.cross_validation import KFolddef run_cv(X,y,clf_class,**kwargs):# 构建一个kfolds对象kf = KFold(len(y),n_folds=5,shuffle=True)y_pred = y.copy()# 遍历折叠for train_index, test_index in kf:    X_train, X_test = X[train_index], X[test_index]    y_train = y[train_index]    # 使用关键字参数初始化分类器    clf = clf_class(**kwargs)    clf.fit(X_train,y_train)    y_pred[test_index] = clf.predict(X_test)return y_pred

它被调用的方式如下:

from sklearn.svm import SVC print "%.3f" % accuracy(y, run_cv(X,y,SVC))

问题2:如何使用已训练的模型文件(例如,从SVM获得的),以便我可以用它来预测更多(测试)数据,这些数据我在训练时没有使用过?


回答:

关于你的第一个问题,在上面的代码中,你可以这样调用run_cv(X,y,SVC,n_classifiers=100)**kwargs会将此参数传递给分类器初始化步骤clf = clf_class(**kwargs)

关于你的第二个问题,你链接的代码中的交叉验证只是用于模型评估,即比较不同类型的模型和超参数,并确定你的模型在生产中的可能效果。一旦你决定了你的模型,你需要在整个数据集上重新拟合模型:

clf.fit(X,y)

然后你可以使用clf.predictclf.predict_proba来获取预测结果。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注