我们可以通过检查散点图来选择特征吗?

数据挖掘 特征选择
2022-02-26 20:27:48

假设我手上有一个包含八个特征的数据集。我想找到预测方块、红心、梅花、黑桃的特征。

------------------------------------------------------------------------------
|   f1   |   f2   |   f3    |   f4    |    f5    |   f6    |   f7    |  f8
+--------+--------+---------+---------+---------------------------------------
|        |        |         |         |          |         |         |

f1列用于类标签,其余为特征。

首先,我通过获取特征渲染了散点图f2f3它看起来如下所示,

在此处输入图像描述

后来,我通过获取特征渲染了散点图f3f4它看起来如下所示,

在此处输入图像描述

如果= 方块,= 黑桃,= 红心,= 梅花,RedBlueMagentaBlack

我有以下问题,

(1) 为什么有些情节是连贯的,而有些情节是分开的?

(2)这两个情节说明了这四种卡片的什么?

(3)你会选择 、 和 中的哪两个特征进行进一步的实验f2f3为什么f4

3个回答

像其中一位评论者一样,我也质疑这些散点图在这种情况下的效用。

您所描述的是一个标准的多类分类问题您的结果被标记(梅花、黑桃等),并且您有七个特征 (f2-f8) 可用于预测结果。

因此,只需尝试将所有特征放入标准分类模型(例如逻辑回归)中,然后看看结果如何。如果您认为某些特征不重要,您可以从模型中消除这些特征,并检查交叉验证分数(准确度、f1 分数等)以查看该特征是否真正具有预测性。对于线性模型,查看系数及其标准误差在这方面也很有用。广义线性模型的另一种特征选择方法是检查偏差Hill/Gelman 在他们的书(Data Analysis using Regression and Multilevel/Hierarchical Models)中写道:“当向模型添加信息预测变量时,我们预计偏差会减少 1 以上。当k预测被添加到模型中,我们预计偏差将减少超过 "。k

您不应该的是检查散点图以确定哪些特征是重要的。基本问题是即使数据可能在七个维度上被很好地分离(即,使用所有七个特征),这种分离可能不会很好地显示在散点图中,因为该图只是二维的。

添加到 molig 答案的一种方法是通过查看它们的交互分布来绘制所有属性对之间的关​​系。这样,您至少可以删除高度相关的特征。

如果您在 python-land 中用您的数据替换“数据”并调整绘图组件,至少要缩放特征特征绘图的绘图,您将受益于 pandas 的自动绘图:

from pandas.tools.plotting import scatter_matrix
scatter_matrix(data, alpha=0.3, diagonal='kde')

scatter_matrix_from_pandas_docs

其他方向是使用每个要素类对的直方图来查看要素类关系。

data.groupby('class').hist()

查看这篇文章以了解您初始数据探索的其他可视化选项:http: //machinelearningmastery.com/quick-and-dirty-data-analysis-with-pandas/

希望有帮助。

我想这主要取决于你想用这些数据做什么。

既然你有标签,我想你想执行某种监督学习。在这种情况下,您要避免的是例如相关的特征。这是您可以通过散点图识别的东西。要实际选择特征的子集,我会说例如主成分分析是一个更好的选择。