我应该使用自组织图来降低维度吗?
不是第一选择。对于降维,您有更方便和基本的方法,例如PCA和NMF(如果您没有负值)或原型分析,建议首先使用。
然后K-means将它们分为正常和异常?
红色警报!Kmeans 不是用于分类,而是用于聚类。对你将要做什么的基本理解要小心,否则你会感到困惑。例如,如果您有标签,K-NN 是一种监督(因此是正确的)方法。
或者我可以只使用 K-NN 将它们分类为正常 - 异常而无需任何降维?
不可能的。正如您已经知道的那样,您有一个称为维度诅咒的问题,其中欧几里德距离高度失真。您需要在 K-NN 之前减少维度。我知道的唯一一类可能不需要降维的方法是内核方法,例如SVM。
K-NN 可以使用多少功能?
一旦我在 MATLAB 中使用 K-Means 检查了维度诅咒,我看到 7 维之后一切都被扭曲了。这当然取决于数据的性质(分布等),但这是我从实验中得到的。
如果以后我想知道为什么这个人被列入了异常班,我怎么会发现这是因为这两个特征,他的体重根据他的身高?
这个问题太模糊了,关于机器学习的目标。在机器学习中,您会得到一组答案(称为标签)并尝试学习它们。你不应该说他们是否正确。因此,如果您说某个特定的人不正常,您应该向提供标签的人(在我们称之为专家的术语中)询问原因。如果一个人有一定的体重和身高被称为异常,你只知道这个体重和身高表示异常的人。为什么?嗯,谁知道呢?
如果我没有正确回答最后一个问题,请在评论中给我留言。很乐意提供帮助。
我的建议
我建议您将 PCA 应用于您的数据并获取前 5 台 PC 并将它们提供给 K-NN 或LDA。您可以将其中一些 PC 相互绘制,看看它们如何区分您的班级。它让你对正在发生的事情有一个很好的印象。您还可以预先绘制所有特征的方差或熵,并丢弃方差或熵低于阈值的那些特征。
祝你好运 :)