我总共有183个特征,并且已经应用了PCA来降低维度,然后我制作了一个散点图。现在的问题是:“通过视觉分析散点图,您期望线性分类器能在二维主成分空间中分离这两个类别吗?”
from sklearn.decomposition import PCApca = PCA(n_components = 3)pca.fit(scaled_data)x_pca = pca.transform(scaled_data)
下面是散点图的代码:
plt.figure(figsize =(6, 6))plt.scatter(x_pca[:, 0], x_pca[:, 1], c = y_train)plt.xlabel('第一主成分')plt.ylabel('第二主成分') legend1 = plt.legend(*scatter.legend_elements(), loc="upper right", title="类别")
回答:
如果您想根据PCA降维后的两个特征来对它们进行分类,那么显然从图中可以看出,您不能期望线性分类器能够将它们分开。
然而,在由所有特征计算出的另一个空间中,可能会找到一个线性分类器。
在这个链接中有一个完美的例子,展示了用于分类圆内外点的核技巧。https://medium.com/@ankitnitjsr13/math-behind-svm-kernel-trick-5a82aa04ab04
一般的核技巧可以很容易地集成到机器学习分类器中。大多数框架都支持它,但您需要尝试不同的核,看看哪个效果最好。