亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

sklearn:你需要為每組數據創建一個新的轉換器實例嗎?

sklearn:你需要為每組數據創建一個新的轉換器實例嗎?

鴻蒙傳說 2023-05-09 09:51:23
我是數據科學和 scikit-learn 的新手,所以如果這是一個基本問題,我深表歉意。當我們想在新數據集上訓練時,是否需要創建 sklearn 類的新實例?例如,我目前正在做:transformer = PowerTransformer()transformed1 = transformer.fit_transform(data1.to_numpy())transformer = PowerTransformer()transformed2 = transformer.fit_transform(data2.to_numpy()) ...我要轉換多組數據以便運行KNNImputer(再次使用這種重復聲明方法)。我讀到該.fit方法在內部存儲它用于適應傳入數據的 lambda,但是存儲的 lambda 是否會在每次調用時被覆蓋,.fit或者它們是否會受到適合新數據的影響?這樣做是錯誤的嗎:transformer = PowerTransformer()transformed1 = transformer.fit_transform(data1.to_numpy())transformed2 = transformer.fit_transform(data2.to_numpy())...先感謝您!
查看完整描述

1 回答

?
慕哥9229398

TA貢獻1877條經驗 獲得超6個贊

不,那不會錯,在這兩種情況下,您首先要適應數據而不是轉換數據。每次使用 fit 時,它都會覆蓋現有的。這是一個例子:


a = np.array([[1, 3], 

              [np.nan, 2], 

              [5, 9]])


c = np.array([[3, 4], 

              [6, 12], 

              [8, np.nan]])


imp = SimpleImputer(strategy="mean")

a1 = imp.fit_transform(a)

c1 = imp.fit_transform(c)

現在讓我們看看輸出:


a1: array([[1., 3.],

           [3., 2.],

           [5., 9.]])


c1: array([[ 3.,  4.],

           [ 6., 12.],

           [ 8.,  8.]])

取兩列的平均值(如 sklearn doc. 所說)并估算平均值。這在 KNNImputer 中也應該同樣有效。


查看完整回答
反對 回復 2023-05-09
  • 1 回答
  • 0 關注
  • 109 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號