簡體   English   中英

使用GridSearch時使用Scikit-learn的模型幫助

[英]Model help using Scikit-learn when using GridSearch

作為安然項目的一部分,構建了附加模型,下面是步驟的摘要,

以下型號給出了非常完美的分數

cv = StratifiedShuffleSplit(n_splits = 100, test_size = 0.2, random_state = 42)
gcv = GridSearchCV(pipe, clf_params,cv=cv)

gcv.fit(features,labels) ---> with the full dataset

for train_ind, test_ind in cv.split(features,labels):
    x_train, x_test = features[train_ind], features[test_ind]
    y_train, y_test = labels[train_ind],labels[test_ind]

    gcv.best_estimator_.predict(x_test)

下面的模型給出了更合理但低分

cv = StratifiedShuffleSplit(n_splits = 100, test_size = 0.2, random_state = 42)
gcv = GridSearchCV(pipe, clf_params,cv=cv)

gcv.fit(features,labels) ---> with the full dataset

for train_ind, test_ind in cv.split(features,labels):
     x_train, x_test = features[train_ind], features[test_ind]
     y_train, y_test = labels[train_ind],labels[test_ind]

     gcv.best_estimator_.fit(x_train,y_train)
     gcv.best_estimator_.predict(x_test)
  1. 使用Kbest查找分數並對功能進行排序並嘗試更高和更低分數的組合。

  2. 使用StratifiedShuffle將SVM與GridSearch一起使用

  3. 使用best_estimator_來預測和計算精度和召回率。

問題是估算器正在吐出完美的分數,在某些情況下是1

但是當我在訓練數據上重新設置最佳分類器時,運行測試會得到合理的分數。

我的疑問/問題是GridSearch在使用我們發送給它的Shuffle拆分對象進行拆分后對測試數據做了什么。 我認為它不適合測試數據,如果確實如此,那么當我預測使用相同的測試數據時,它不應該給出這么高的分數。 因為我使用了random_state值,所以shufflesplit應該為Grid適合和預測創建相同的副本。

那么,是否使用相同的Shufflesplit兩個錯誤?

GridSearchCV為@ Gauthier Feuillen說,用於搜索給定數據的估計器的最佳參數。 GridSearchCV的描述: -

  1. gcv = GridSearchCV(pipe, clf_params,cv=cv)
  2. gcv.fit(features,labels)
  3. 將展開clf_params以使用ParameterGrid分離所有可能的組合。
  4. features現在將使用cv分為features_trainfeatures_test labels
  5. 現在,gridSearch估算器(管道)將使用features_trainlabels_inner進行訓練,並使用features_testlabels_test
  6. 對於步驟3中的每個可能的參數組合, 將對 cv_iterations 重復步驟4和5 將計算cv迭代中的平均得分,其將被分配給該參數組合。 這可以使用cv_results_屬性訪問。
  7. 對於給出最佳分數的參數,將使用這些參數重新初始化內部估計器, 並重新提供提供給它的整個數據 (特征和標簽)。

由於上一步,您在第一和第二種方法中獲得不同的分數 因為在第一種方法中,所有數據都用於訓練,並且您僅預測該數據。 第二種方法對先前看不見的數據進行預測。

基本上網格搜索將:

  • 嘗試參數網格的每個組合
  • 對於它們中的每一個,它將進行K倍交叉驗證
  • 選擇最好的。

所以你的第二個案例是好的。 否則,您實際上是在預測您訓練過的數據(在第二個選項中不是這種情況,您只保留gridsearch中的最佳參數)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM