2013-05-03 126 views
0

linear_model.Ridgesklearn.grid_search.GridSearchCV()執行網格搜索找到合適的alpha後,我們就可以使用clf.grid_scores_得到電網的分數。是什麼Grid_scores_平均Scikit學習的GridSearchCV

結果中的數字是什麼意思?這些數字如何告訴我們哪個是最好的alhpa?這裏有一個grid_scores_結果的一個例子:

[({'alpha': 10.0}, 
    -3.5395266121766391e-06, 
    array([ -5.81901982e-06, -5.27253774e-08, -4.74683464e-06])), 
({'alpha': 5.0}, 
    -3.5395266121766391e-06, 
    array([ -5.81901982e-06, -5.27253774e-08, -4.74683464e-06])), 
({'alpha': 1.0}, 
    -3.5395266121766391e-06, 
    array([ -5.81901982e-06, -5.27253774e-08, -4.74683464e-06])), 
({'alpha': 0.5}, 
    -3.5395266121766391e-06, 
    array([ -5.81901982e-06, -5.27253774e-08, -4.74683464e-06])), 
({'alpha': 0.1}, 
    -3.5395266121766391e-06, 
    array([ -5.81901982e-06, -5.27253774e-08, -4.74683464e-06])), 
({'alpha': 0.05}, 
    -3.5395266121766391e-06, 
    array([ -5.81901982e-06, -5.27253774e-08, -4.74683464e-06])), 
({'alpha': 0.01}, 
    0.00019276539505293697, 
    array([ 5.83095745e-04, -5.27253774e-08, -4.74683464e-06])), 
({'alpha': 0.005}, 
    0.072428630958501342, 
    array([ 0.07335483, 0.07190767, 0.07202339])), 
({'alpha': 0.001}, 
    0.37063142154124262, 
    array([ 0.37106198, 0.36953822, 0.37129406])), 
({'alpha': 0.0005}, 
    0.47042710942522803, 
    array([ 0.47063049, 0.4686987 , 0.47195214])), 
({'alpha': 0.0001}, 
    0.61100922361083054, 
    array([ 0.61189728, 0.60846248, 0.61266791]))] 

回答

2

在一般情況下,它是得分每組參數列表。

列表中的每個元素都是一個三元組<parameter dict, average score, list of scores over all folds>。三元組中的第一個元素是用於特定運行的參數字典,在您的情況下,只有一個參數alpha。三元組中的第二個元素是所有摺疊的平均分數,即在三元組中的第三元素的列表上。如果您沒有指定自己的分數函數,則Ridge迴歸的默認值是決定係數R^2。三元組中的最後一項是所有褶皺(通過其計算平均值)的分數。摺疊次數由cv參數指定(默認值爲3)。

您通常希望找到具有最高平均分數的三元組。在你的情況下,最大爲阿爾法0.0001:

({'alpha': 0.0001}, 
0.61100922361083054, 
array([ 0.61189728, 0.60846248, 0.61266791])) 
+0

注意'GridSearchCV'有一個'refit'的說法,這將重新訓練與在搜索中找到的最佳設置的所有數據的估計。 – 2013-05-03 16:07:40