我是机器学习的新手,之前没有使用过 scikit-learn。我正在做一个项目。作为项目的一部分,我需要训练一种机器学习算法来将一些观察结果分类到不同的类中。我已经处理了传感器的观察结果以产生一些数据。但处理后的数据的问题在于,它是针对不同观察的不同长度的向量。
这张图片显示了一些数据。绿线是应用高斯滤波器后的原始数据,红线表示对数据的 16 度多项式拟合。第 1 行包含 3 个峰的数据,第 2 行包含 4 个峰的数据,第 3 行包含 5 个峰的数据。我希望能够将数据分类为单独的类。
我目前计划使用多项式的系数作为我的特征向量。第一行很好,但在峰值数量较多的情况下,多项式的拟合效果不佳,可能无法正确分类。我曾尝试使用更高次的多项式,但它会导致峰值数量较少的情况出现异常。仅仅计算峰的数量不能用于分类,因为这只是几个类别的一个子集,分类也将取决于观察到的峰的相对大小和分离,但是在多项式拟合中这个信息不是很清楚更多的峰值。
我想知道有没有
- 其他一些方法而不是尝试拟合多项式,它可以帮助我生成特征向量来对数据进行分类。
- 一种在python中可视化高维数据的方法
编辑:
我现在正在使用样条而不是多项式来拟合数据,scipy.interpolate.UnivariateSpline
并且它正在生成更好的拟合。我现在可以使用结的位置和样条的系数。但是这些向量的长度不是恒定的,即使重复两次相同的观察也是不同的。有人可以建议一种将其映射到恒定长度向量的方法。