Machine learning 数据科学中的连续或分类数据

Machine learning 数据科学中的连续或分类数据,machine-learning,logistic-regression,data-science,categorical-data,continuous,Machine Learning,Logistic Regression,Data Science,Categorical Data,Continuous,我正在构建一个自动清理过程,从数据集中清理空值。我发现很少有函数像mode,median,mean可以用来填充给定数据中的NaN值。但是我应该选择哪一个呢?如果数据是分类数据,则必须为模式或中值,而对于连续数据,则必须为均值或中值。所以为了定义数据是分类的还是连续的,我决定建立一个机器学习分类模型 我使用了一些功能,例如, 1) 数据的标准偏差 2) 数据中唯一值的数量 3) 数据行总数 4) 总行数的唯一数的比率 5) 数据的最小值 6) 数据的最大值 7) 中位数和第75百分位之间的数据数量

我正在构建一个自动清理过程,从数据集中清理空值。我发现很少有函数像mode,median,mean可以用来填充给定数据中的NaN值。但是我应该选择哪一个呢?如果数据是分类数据,则必须为模式或中值,而对于连续数据,则必须为均值或中值。所以为了定义数据是分类的还是连续的,我决定建立一个机器学习分类模型

我使用了一些功能,例如,
1) 数据的标准偏差
2) 数据中唯一值的数量
3) 数据行总数
4) 总行数的唯一数的比率
5) 数据的最小值
6) 数据的最大值
7) 中位数和第75百分位之间的数据数量
8) 中位数和25%之间的数据数量
9) 第75百分位和上晶须之间的数据数
10) 25%和更低晶须之间的数据数量
11) 上晶须上方的数据数
12) 下晶须下方的数据数

首先,利用这12个特征和大约55个训练数据,我使用标准化形式的逻辑回归模型来预测标签1(连续)和0(分类)

有趣的是它成功了


但是,我做得对吗?这是预测数据性质的正确方法吗?请告诉我是否可以进一步改进。

数据分析似乎很棒。就这一部分而言

但是我应该选择哪一个呢

就我所测试的而言,平均值永远是赢家。对于每个数据集,我尝试测试所有情况并比较准确性

有一个更好的方法,但有点费时。如果你想推进这个系统,这会有所帮助

对于缺少数据的每一列,找到其最近的邻居,并将其替换为该值。假设有N列不包括目标,那么对于每个列,将其视为因变量,其余N-1列视为独立列。并找到它的最近邻,然后它的输出(因变量)就是缺失属性的期望值

但是我应该选择哪一个呢?如果数据是分类数据,则必须为模式或中值,而对于连续数据,则必须为均值或中值

通常使用分类数据模式。对于连续平均值。但我最近看到一篇文章,其中几何平均数用于分类值。 如果您构建的模型使用具有nan的列,则可以包括具有均值替换、中值替换以及布尔列“索引为nan”的列。但最好不要在这种情况下使用线性模型——你可能会面临相关性

除此之外,还有许多其他方法可以替代nan。例如,MICE算法

关于您使用的功能。它们还可以,但我想建议添加更多与发行版相关的功能,例如:

  • 偏斜
  • 峰度
  • 与高斯分布(和其他分布)的相似性
  • 您需要一些1D GD来适应您的列(GMM;在55行中表现不佳)
所有这些项目都是基于普通数据+转换数据(log,exp)得到的

我解释一下:你可以有一个包含很多类别的专栏。在旧方法中,它可能看起来像数值列,但它不是数值列。分布匹配算法可能在这里有所帮助

也可以使用不同的规格化。sklearn的RobustScaler可能工作得很好(在类别的级别与“大纲”值非常相似的情况下,它可能会有所帮助)

最后一条建议是:您可以使用随机林模型进行此操作,并获得重要的列。此列表可能为特征工程/生成提供一些指导

当然,看看错误分类矩阵,看看哪些特征会出错也是一件好事