繁体   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