logo
Loading...

改成 SimpleImputer之後還是error? - Cupoy

問題:因為sklearn好像有更新說要換成from sklearn.impute import Si...

ml100,ml100-d21

改成 SimpleImputer之後還是error?

2020/07/23 下午 11:17
機器學習共學討論版
Kevin
觀看數:6
回答數:2
收藏數:1
ml100
ml100-d21

問題:因為sklearn好像有更新說要換成from sklearn.impute import SimpleImputer,但我改了之後還是error如下

請問老師一下要如何修改

code:

from sklearn.preprocessing import MinMaxScaler

from sklearn.impute import SimpleImputer

# 特徵欄位清單

train = app_train

features = list(train.columns)


# 複製 test 資料

test = app_test.copy()


# 填補器 : 設定缺失值補中位數

imputer = SimpleImputer(strategy = 'median')


# 縮放器 : 設定特徵縮放到 0~1 區間

scaler = MinMaxScaler(feature_range = (0, 1))


# 填補器載入個欄中位數

imputer.fit(train)


# 將中位數回填 train, test 資料中的空缺值

train = imputer.transform(train)

test = imputer.transform(app_test)


# 縮放器載入 train 的上下限, 對 train, test 進行縮放轉換

scaler.fit(train)

train = scaler.transform(train)

test = scaler.transform(test)


print('Training data shape: ', train.shape)

print('Testing data shape: ', test.shape)

回答列表

  • 2020/07/23 下午 11:23
    張天恩
    贊同數:1
    不贊同數:0
    留言數:0

    錯誤顯示你的資料裡面('Cash loans' 這個欄位)仍然含有類別型的資料,而類別型資料並沒有中位數(median)這個統計數據。可能需要檢查你前面特徵工程是否有正確的跑完。

  • 2020/07/27 下午 08:52
    張維元 (WeiYuan)
    贊同數:0
    不贊同數:0
    留言數:0

    這裡的錯誤訊息看起來不是 simpleInputer 造成的,是「 Cash loans」欄位的問題。意思是  Cash loans 的字串欄位無法計算中位數(median)。


    如果這個回答對你有幫助請主動點選「有幫助」或「最佳解答」的按鈕,也可以追蹤我的GITHUB 帳號。若還有問題的話,也歡迎再開一個新的問題繼續發問(留言在原本的討論底下我可能不會回覆)或者把你理解的部分整理上來,我都會提供你 Review 和 Feedback 😃😃😃