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