2

我想知道是否有任何sklearn分类器的选项,以适应使用一些超参数,并在改变一些超参数后,通过节省计算(适合)成本来改装模型。在分类中的scikit学习改装/部分适合选项

让我们说,Logistic回归是适合使用C=1e5logreg=linear_model.LogisticRegression(C=1e5)),我们仅仅改变CC=1e3。我想保存一些计算,因为只有一个参数被改变。

+0

据我所知,贝叶斯超参数优化是最快的方法:https://github.com/fmfn/BayesianOptimization 。你可以为此创建一个新的问题,也许人们会有更好的想法。 – MedAli

回答

1

是的,有一个叫warm_start技术,它从文件引用,意思是:

warm_start:BOOL,默认:假
当设置为True,重新使用以前的呼叫解决方案以适合初始化,否则, 只是抹去以前的解决方案。无用于线性求解器。

如文档here中所描述的,它在LogisticRegression的可用:

sklearn.linear_model.LogisticRegression(..., warm_start=False, n_jobs=1) 

所以具体的,你的情况,你会做到以下几点:

from sklearn.linear_model import LogisticRegression 

# create an instance of LogisticRegression with warm_start=True 
logreg= LogisticRegression(C=1e5, warm_start=True) 
# you can access the C parameter's value as follows 
logreg.C 
# it's set to 100000.0 

# .... 
# train your model here by calling logreg.fit(..) 
# .... 

# reset the value of the C parameter as follows 
logreg.C = 1e3 

logreg.C 
# now it's set to 1000.0 

# .... 
# re-train your model here by calling logreg.fit(..) 
# .... 

据我一直能够快速检查,它也可用于以下:

+0

谢谢。实际上,我正在尝试搜索最佳参数(作为sklearn中网格搜索的替代方法)。理论上,我的观点是,如果我们只改变一个参数,并且再次适合模型,它应该比第一次花费更少的时间(如果'warm_start = True'),但是从经验上讲,这不是事实。你能帮忙吗? – Aadarsh

+0

@Nawaz我刚刚评论你的问题。 – MedAli

+0

谢谢,我已经看到了。 – Aadarsh