数据预处理Python

时间:2016-04-12 14:09:17

标签: python pandas machine-learning

我在Python中有一个DataFrame,我需要预处理我的数据。哪个是预处理数据的最佳方法?知道某些变量具有巨大的规模而其他变量没有。数据也没有太大的偏差。我尝试使用preprocessing.Scale函数并且它可以工作,但我完全不确定是否是进行机器学习算法的最佳方法。

1 个答案:

答案 0 :(得分:1)

有各种数据预处理技术,您可以参考sklearn.preprocessing中的想法作为可能的指导原则。

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

预处理与您正在学习的数据相关联,但一般情况下您可以探索:

  1. 通过计算每列的百分比来评估缺失值
  2. 计算方差并删除方差接近零的变量
  3. 评估互变量相关性以检测冗余
  4. 您可以在熊猫中轻松计算这些分数,如下所示:

    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="|") 
    

    以上将分别生成三个文件,方差,缺失值百分比和相关结果。

    请参阅this博客文章,了解实用教程。