我是“实用”机器学习的初学者/新手。
我编译了一个非常大的数据集来创建一个二进制分类机器学习模型。数据集有超过80列,但我正在尝试缩小列列表。我已经通过多种算法(Decition Tree,Random Forest,Gradient Boosting)运行了数据;使用了各种超参数调整;并分析了多重置换特征重要性(PFI)结果,以确定哪些特征需要删除。到目前为止,我的准确率(以及其他指标,如F1得分、精确度、召回率)徘徊在70%到80%之间。我的问题是:
如果我有一个2-4列的子集,它们的数据不仅相关,而且相互依赖,即-如果不查找和使用colB、colC等,colA就没有多大意义-如果不用colB加/减/除,colA就没有多大意义
是否可以/推荐将这几列组合成一个向量或另一个特征?
例如,绘制为时间序列的colA将形成一条漂亮的非线性曲线。绘制为时间序列的colB也会形成一条漂亮的非线性曲线。但是,在查看它们相交的位置之前,查看每一条线都没有多大意义(这种情况一次又一次地发生)。所以你可以在这里看到任意两个点(colA,colB)之间的距离非常重要。
但是,当我包含一个colC,这是colA和colC之间差异的结果时,PFI分析认为colC是一个降低准确性的坏特征,等等。
我们非常感谢您在这方面的任何帮助,并在此之前感谢所有人的帮助。
如果你需要我提供更多的信息/例子,请让我知道。再次感谢。
发布于 2019-06-03 19:45:03
我不知道你的数据是什么样子的。可能希望看到一些示例/matrise,以便人们更好地回答:)
如果你确定要删除功能,你有没有试过套索?对于L1正则化,一些特征被完全忽略。将alpha设置得较低,看看会发生什么?
例如: lasso001 = Lasso(alpha=0.01,max_iter= 10000).fit(X_train,y_train)....and等。打印具有n个特征的输出。如果您希望它使用更多功能,请将alpha设置得更低。只需注意过度拟合。您还可以在LogisticRegression和LinearSVM中“调优”该参数。( C)。
https://stackoverflow.com/questions/56419713
复制相似问题