在我的预测python代码中
我使用sklearn预测模型(KNN,RandomForest,LinearRegression等)
在循环中尝试找到最佳的超参数优化。
一旦找到要复制训练模型
的最佳参数,我该怎么做?
for k in range(1,10):
knn = KNeighborsClassifier(n_neighbors=k)
...
#some code to fit and train the model here and find the accuracy
...
if accuracy > top_accuracy:
top_accuracy = accuracy
top_knn = knn <==== ?
# code to fit top_knn with a new test dataset
用受过训练的模型复制受过训练的模型吗,有什么办法可以确保我的模型具有受过训练的数据
答案 0 :(得分:0)
scikit-learn
包含用于超参数调整的组件(请参阅https://scikit-learn.org/stable/modules/grid_search.html)。示例代码为here。可以通过clf.best_estimator_
访问在搜索过程中找到的最佳模型。
答案 1 :(得分:0)
您在使用sklearn吗?每次训练时,KNN对象都会保留最新的拟合功能。如果要记录新拟合是否比上一个拟合更好,我只需创建一个新类并将模型对象分配给它:
class foo:
__init__(self,model,accuracy):
self.current = model
self.accuracy = accuracy
if accuracy > foo.accuracy:
foo.current = model