我的任務是處理資料集上的監督學習問題,并希望從頭到尾創建一個完整的管道。從訓練測驗拆分開始。我撰寫了一個自定義類來將 sklearns train_test_split 實作到 sklearn 管道中。它的 fit_transform 回傳訓練集。后來我仍然想訪問測驗集,所以我在自定義轉換器類中將其作為實體變數,如下所示:
self.test_set = test_set
from sklearn.model_selection import train_test_split
class train_test_splitter([...])
[...
...]
def transform(self, X):
train_set, test_set = train_test_split(X, test_size=0.2)
self.test_set = test_set
return train_set
split_pipeline = Pipeline([
('splitter', train_test_splitter() ),
])
df_train = split_pipeline.fit_transform(df)
現在我想得到這樣的測驗集:
df_test = splitter.test_set
它不作業。如何獲取實體“拆分器”的變數。它存盤在哪里?
uj5u.com熱心網友回復:
您可以通過多種方式訪問??管道的步驟。例如,
split_pipeline['splitter'].test_set
也就是說,我認為這不是一個好方法。當您用更多步驟填寫管道時,fit有時一切都會按照您的意愿進行,但是在對其他資料進行預測/轉換時,您仍然會呼叫您的transform方法,這將生成一個新的訓練測驗拆分,忘記舊的拆分,并將新火車送下管道進行剩余的步驟。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/456587.html
