Scikit学习变量偏差



我正在使用Scikit对非常大的数据集进行一些预测。数据非常广泛,但不是很长,所以我想为数据的各个部分设置一些权重。如果我知道数据的某些部分更重要,那么其他部分我应该如何通知SCikit,或者它是否有点破坏整个机器学习方法以进行一些预教学。

最直接的方法可能是在数据矩阵 X 上使用主成分分析。 主向量构成 X 的正交基,它们都是 X 的原始特征空间(通常是列(的线性组合。分解是这样的,每个主向量都有一个相应的特征值(或奇异值,具体取决于您计算 PCA 的方式(,一个标量,该标量反映了在最小二乘意义上仅基于该主向量可以进行多少重建。

主向量系数的大小可以解释为数据各个特征的重要性,因为每个系数 1:1 映射到矩阵的特征或列。通过选择一个或两个主向量并检查它们的大小,您可以初步了解哪些列更相关,当然,这些向量在多

大程度上接近矩阵。

这是详细的scikit-learn API说明。同样,PCA是一种简单但只是一种方法。

这可能有点取决于你正在使用的机器学习算法——许多人会自己发现特征的重要性(如通过随机森林中的feature_importances_属性和其他属性详细说明的那样(。

如果您使用的是基于距离的度量(例如 k-means、knn(,您可以通过相应地缩放每个特征的值来手动对特征进行不同的权重(尽管 scikit 可能会进行一些归一化......

或者,如果您知道某些功能确实没有太多信息,您可以简单地消除它们,尽管您会失去这些功能可能意外带来的任何诊断价值。scikit 中有一些用于功能选择的工具可能有助于做出这种判断。

相关内容

  • 没有找到相关文章

最新更新