新机器学习所以请耐心等待,谢谢!
我有三个问题要问,所以如果你在回答时提到问题编号会有所帮助 .
所以我想在应用机器学习算法之前对我的训练数据进行特征选择 . 我将使用相同的数据集在许多不同的ML算法上运行以确定什么是最好的,这样如果我可以只进行一次特征选择并将新数据集传递给各种算法,它将更有效 .
注意:我在Python3中编码,我将使用BorutaPy进行功能选择 . [https://github.com/scikit-learn-contrib/boruta_py]
问题1)
在进行特征选择之前,我需要知道我正在使用的算法吗?或者我可以只执行我的功能选择,然后使用任何算法,即;功能选择取决于使用的算法类型?
问题2)
我可以为回归和分类问题执行相同的功能选择吗?
问题3)
而不是上面提到的所有内容,最好是对回归问题使用正则化并对分类问题进行特征选择吗?
谢谢!
1 回答
我会回答你的问题1和2,留下3号给别人 . 我将使用R来做一些例子 . 我知道您使用的是python,但问题的答案并不依赖于实现 . 我希望你可以将它们翻译成python,或者只看数学,看看发生了什么 .
问题1:特征选择取决于所使用的算法 .
首先,一些数据 .
这里,y正好是1 - x1⁶,y = x2,并添加了一些噪声 . 这是一个帮助看到这一点的情节 .
我们想要从x1或x2预测y . 哪一个更好?首先让我们使用线性模型 .
使用x2预测y的模型具有更好的R²,因此x2优于x1 .
现在让我们使用kNN回归(k = 1) .
使用x1的型号具有更好的R²,几乎是完美的 . 最好的变量取决于算法 .
问题2:回归和分类可能需要不同的功能 .
这更简单 . 如果您正在进行回归,则表示您正在预测数字量 . 如果您正在进行分类,那么您正在预测一个分类变量 - 因此这里的任何比较都将是关于预测不同的y值 . 当然,可以使x1与y1相关,但不能使y2和x2与y2相关而不与y1相关 .
一个简单的例子是:
y1等于x1,因此x1是y1的完美预测器 . 但是x2是随机的,与y1没有关系,因此是y1的一个相当差的预测器 . 相反,如果x2 <0.5则y2为1,否则为2 . x2是y2的完美预测因子 . 但是x1是随机的,与y2没有关系,因此是y2的不良预测因子 .
更一般地说,最好的预测因子显然取决于你想要预测的内容 . 如果您预测两个不同的变量,则没有理由认为同一个预测变量集合对两者都是最佳的 .
我希望这个对你有用 .