异常点往往是由于某一个特征或者多个特征数值异常。但是对于多维度特征无法直接进行可视化观测异常点,利用PCA技术进行维度缩减,可以在二维或者三维空间上进行可视化展示。
原数据如下:
from sklearn.decomposition import PCA pca=PCA(n_components=2) #压缩到二维空间中 x_pca=pca.fit_transform(df_test) x_pca.shape
(6, 2)
画出散点图,找出异常点
plt.scatter(x_pca[:,0],x_pca[:,1],alpha=0.8,edgecolors='none') plt.show() pca.explained_variance_ratio_.sum()
找出异常点的索引号
l=[] for i,item in enumerate(x_pca): if item[0]>-25 or item[1]>0: l.append(i) print(i)
4 5
总结:
从原数据我们直观看数据,就发现第4和第5行数据属于异常,通过画图找出来的异常点与初步判断一致。