簡體   English   中英

數據預處理 Python

[英]Data Preprocessing Python

我在 Python 中有一個 DataFrame,我需要預處理我的數據。 哪個是預處理數據的最佳方法?知道某些變量具有巨大的規模,而另一些則沒有。 數據也沒有巨大的偏差。 我嘗試使用 preprocessing.Scale 函數並且它有效,但我完全不確定是否是進行機器學習算法的最佳方法。

數據預處理有多種技術,您可以參考 sklearn.preprocessing 中的思想作為潛在的指導方針。

http://scikit-learn.org/stable/modules/preprocessing.html

預處理與您正在研究的數據耦合,但通常您可以探索:

  1. 通過計算每列的百分比來評估缺失值
  2. 計算方差並刪除方差接近零的變量
  3. 評估變量間相關性以檢測冗余

您可以在 Pandas 中輕松計算這些分數,如下所示:

data_file = "your_input_data_file.csv"
data = pd.read_csv(data_file, delimiter="|")
variance = data.var()
variance = variance.to_frame("variance")
variance["feature_names"] = variance.index 
variance.reset_index(inplace=True)
#reordering columns 
variance = variance[["feature_names","variance"]]
logging.debug("exporting variance to csv file")
variance.to_csv(data_file+"_variance.csv", sep="|", index=False)

missing_values_percentage = data.isnull().sum()/data.shape[0]
missing_values_percentage = missing_values_percentage.to_frame("missing_values_percentage")
missing_values_percentage["feature_names"] = missing_values_percentage.index 
missing_values_percentage.reset_index(inplace=True)
missing_values_percentage = missing_values_percentage[["feature_names","missing_values_percentage"]]
logging.debug("exporting missing values to csv file")
missing_values_percentage.to_csv(data_file+"_mssing_values.csv", sep="|", index=False) 
correlation = data.corr()
correlation.to_csv(data_file+"_correlation.csv", sep="|") 

以上將生成三個文件,分別保存方差、缺失值百分比和相關結果。

有關動手教程,請參閱博客文章。

  1. 始終拆分您的數據以訓練和測試拆分以防止過度擬合。

  2. 如果您的某些特征規模較大而有些特征規模不大,則您應該對數據進行標准化。確保僅在訓練集上對數據進行打磨,以免過度擬合。

  3. 您還必須查找丟失的數據並替換或刪除它們。 如果列中缺少少於 0.5% 的數據,您可以使用“dropna”,否則您必須用某些東西替換它(您可以用零、平均值、以前的數據替換 ut...)

  4. 您還必須使用箱線圖檢查異常值。 異常值是與同一組中的其他數據顯着不同的點,也會影響您在機器學習中的預測。

  5. 如果我們檢查多重共線性,它是最好的。 如果某些特征具有相關性,我們的多重共線性可能會導致我們模型的錯誤預測。

  6. 為了使用您的數據,某些列可能是分類的,應該將其轉換為數字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM