logo
Loading...

le.fit與le.transform的意思 - Cupoy

Q1.檔案Day_006_column_data_type In [6]: 中le.fit與le.t...

ml100-4

le.fit與le.transform的意思

2020/03/30 上午 10:02
機器學習共學討論版
AC
觀看數:11
回答數:2
收藏數:1
ml100-4

Q1.檔案Day_006_column_data_type In [6]: 中le.fit與le.transform的意思如下解釋是否正確?(因為網路上寫fit_transform但教學文件寫le.transform不確定是否一樣)


fit(y) 在網路上查到意思是: fit可看做一本空字典,y可看作要塞到字典中的词 

fit_transform(y)在網路上查到意思是:相当于先进行fit再进行transform,即把y塞到字典中去以后再进行transform得到索引值。


但檔案Day_006_column_data_type In [6]: 中寫的code為

le.fit(app_train[col]) app_train[col] = le.transform(app_train[col])


Q2.檔案Day_006_column_data_type In [6]: 的結果顯示 3 columns were label encoded.但如果回到Out [4] :可以看到 EMERGENCYSTATE_MODE的type也是object且也<=2但沒有被In [6]: 轉換,請問原因為何



Q3.檔案Day_006_column_data_type In [7]: 中被轉換的欄位有哪些?如果前面Label encoding已經轉換過那In [7]這個cell再執行時還會被轉換成one hot encoding 嗎?

回答列表

  • 2020/03/30 下午 11:18
    李子明
    贊同數:3
    不贊同數:0
    留言數:0

    Q1.

    假設app_train[col]的內容是[apple, banana, orange, apple, banana, orange]


    le.fit(app_train[col])

    上面這行執行後,le會依據app_train[col]產生對應的編碼,比如

    [apple, banana, orange, apple, banana, orange] -> [1,2,3,1,2,3]

    但上述的[1,2,3,1,2,3]是不可能發生的,因為le不會讓值重覆,所以le中的值會是 [1,2,3]


    app_train[col] = le.transform(app_train[col])

    這行執行後,app_train[col]會依序被改寫為le的編碼,

    所以這時候的app_train[col]內容會是[1,2,3,1,2,3]。

  • 2020/03/31 上午 00:16
    張維元 (WeiYuan)
    贊同數:1
    不贊同數:0
    留言數:0

    嗨,AC,以下簡單回覆你的問題


    Q1.檔案Day_006_column_data_type In [6]: 中le.fit與le.transform的意思如下解釋是否正確?(因為網路上寫fit_transform但教學文件寫le.transform不確定是否一樣)


    => 一樣,fit_transform 只是把 fit 跟 transform 連著做而已。


    Q2.檔案Day_006_column_data_type In [6]: 的結果顯示 3 columns were label encoded.但如果回到Out [4] :可以看到 EMERGENCYSTATE_MODE的type也是object且也<=2但沒有被In [6]: 轉換,請問原因為何


    => 你可以把 EMERGENCYSTATE_MODE 的資料印出來看看,我猜是他其中有 NaN 導致沒有被考慮到


    Q3.檔案Day_006_column_data_type In [7]: 中被轉換的欄位有哪些?如果前面Label encoding已經轉換過那In [7]這個cell再執行時還會被轉換成one hot encoding 嗎?


    => 你是指這一段程式碼嗎?


    ```

    app_train = pd.get_dummies(app_train) 

    app_test = pd.get_dummies(app_test)

    ```


    pd.get_dummies 只會針對類別型的資料(也就是沒有 label 過的資料)作轉換,這個部分下次建議可以自己印出來觀察,印象會比較深刻:)


    如果這個回答對你有幫助請主動點選「有幫助」的按鈕,也可以追蹤我的GITHUB帳號。若還有問題的話,也歡迎繼續再追問或者把你理解的部分整理上來,我都會提供你 Review 和 Feedback 😃😃😃