2016-10-31 79 views

回答

3

Bascially,DataFrameMapper(以及整個sklearn-pandas包)旨在將pandas DataFrame對象的優點與sklearn機器學習包的強大功能相結合。

sklearn.Pipeline描述了在矩陣格式上執行的轉換的有序列表(由numpy和scipy包提供)。這些轉換將依次在整個矩陣上執行,並將從頭到尾對整個訓練和預測過程進行編碼。

流水線轉換的第一部分(aka步驟)元組是它的名稱,它對流程沒有實際影響,它僅用於可讀性。

另一方面,DataFrameMapper對由pandas包創建的DataFrame對象進行操作,並且可以將轉換應用於數據幀的某些部分(不一定在整個數據集上)。數據框類似於numpy和scipy矩陣,跟蹤行和列標籤以及元數據有一個明顯的區別。 DataFrames操作將確保可以使用邏輯標識而不是索引訪問,操作和讀取行和列。

DataFrameMapper轉換元組的第一部分描述了應通過轉換運行哪些列。

兩大差異:

  1. 一個DataFrameMapper是一個更靈活的工具,它會告訴你不同列上執行不同的轉換,並更傾向於將複雜的數據結構,而sklearn.Pipeline更面向在同類數據集上執行機器學習相關轉換。
  2. A DataFrameMapper可讓您保留已分配給您的熊貓DataFrame對象的註釋和標籤,而sklearn.Pipeline將導致numpy/scipy數組/矩陣。