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

时间:2018-01-26 08:46:39

标签: machine-learning logistic-regression data-science categorical-data continuous

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

我采取了很少的功能,如, 1)数据的标准偏差
2)数据中的唯一值数量
3)数据总行数
4)总行数的唯一比例
5)数据的最小值
6)数据的最大值
7)中位数和第75百分位数之间的数据
8)中位数和第25百分位数之间的数据
9)第75百分位数和上部胡须之间的数据数量
10)25%和更低胡须之间的数据数量
11)上晶须以上的数据
12)低于晶须的数据

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

有趣的部分是有效的!!

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

2 个答案:

答案 0 :(得分:1)

数据分析看起来很棒。对于部分

  

但我应该选择哪一个?

就我测试而言,平均值总是胜利者。对于每个数据集,我都会尝试对所有案例进行测试并比较准确性。

有一种更好的方法,但有点耗时。如果你想推进这个系统,这可以提供帮助。

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

答案 1 :(得分:0)

  

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

通常使用分类数据模式。对于连续 - 意味着。但我最近看到一篇文章,其中几何平均值用于分类值。 如果你构建一个使用带有nan的列的模型,你可以包含具有均值替换的列,中值替换以及布尔列'index is nan'。但最好不要在这种情况下使用线性模型 - 你可以面对相关性。

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

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

  • 偏度
  • 峰度
  • 与高斯分布(和其他分布)的相似性
  • 您需要适合您的色谱柱的一些1D GD(GMM; 55行不能很好地执行)

您可以根据正常数据+转换数据(log,exp)获得所有这些项目。

我解释一下:你可以在里面有一个包含许多类别的列。它可能看起来像旧的方法的数字列,但它没有数字。分布匹配算法可能对此有所帮助。

您也可以使用不同的规范化。来自sklearn的RobustScaler可能效果很好(如果类别的级别与'outlied'值非常相似,则可能会有所帮助。)

最后一条建议:你可以使用随机森林模型来获得重要的列。此列表可能为特征工程/生成提供一些方向。

而且,当然,看看错误分类矩阵以及错误发生的特征也是一件好事!