logo
Loading...

LabelEncoder與MinMaxScaler數值轉換 - Cupoy

請問一下:1.為什麼在這次的範例中LEncoder跟MMEncoder在轉換之前df[c]要做這個多...

ml100-3,ml100-3-d31

LabelEncoder與MinMaxScaler數值轉換

2019/09/29 下午 11:15
機器學習共學討論版
Yu Chen Lin
觀看數:53
回答數:3
收藏數:0
ml100-3
ml100-3-d31

請問一下:

1.為什麼在這次的範例中LEncoder跟MMEncoder在轉換之前df[c]要做這個多的轉換,不能直接寫df[c]就好了嗎?

差別在哪裡呢?

2.在做LEn跟MMEn的處理方法為什麼不相同,其實我的目的只是想簡化程式而且兩種轉換的df[c]處理方法都不相同有點不值觀,我有試過在做LEn的時候其實只要list就可以了不一定需要.values,但是為什麼在MMEn的時候就不用list了呢?

3.為什麼到MMEn就要reshape而LEn不用?

4.為什麼一定要.values完之後才能reshape?不能直接df[c].reshape嗎?

回答列表

  • 2019/09/30 上午 00:03
    張維元 (WeiYuan)
    贊同數:0
    不贊同數:0
    留言數:1

    1.為什麼在這次的範例中LEncoder跟MMEncoder在轉換之前df[c]要做這個多的轉換,不能直接寫df[c]就好了嗎?差別在哪裡呢?


    根據文件的寫法,應該不一定要轉成 list ,只要是 array-like 的資料就可以!差別只是型態不同而已


    另外關於你後面這些問題,我會建議你與其這樣問,不如直接改改看,改了之後發現不行再去看文件找可能的原因是什麼。如果看不懂或是不符合你預期的結果,再提出來討論:)

  • 2019/09/30 上午 01:26
    計弘達
    贊同數:0
    不贊同數:0
    留言數:3

    1. LabelEncoder.fit_transform() needs parameter of "array-like of shape [n_samples]". And df[c] is a Series with index. So, it needs list() to convert df[c].values to array-like of shape [n_samples].


    2. MinMaxScaler.fit_transform() needs parameter of "numpy array of shape [n_samples, n_features]". And df[c] is Series with index. So, it needs reshape() method to convert df[c].values to "array of shape [n_samples, n_features]". And reshape(-1, 1) method converts df[c].values to len(df[c].values) rows, one column array.

  • 2019/10/01 下午 01:01
    陳明佑 (Ming You Chen)
    贊同數:1
    不贊同數:0
    留言數:1

    同學您好, 

    你可以測試看看, 這邊不寫list會造成Error


    之前有 trace 過, 主要是因為前面那一行 fillna(-1)的緣故

    數值型的沒問題, 但是原本是文字的類別型資料就會出錯了

    轉成 list 之後, 才能夠文字-1通吃


    所以另一個辦法就是 數值型的 fillna(-1) / 文字形的 fillna('None')

    這樣就不用list了, 同樣的位置只需要填 df[c]就可以