机器学习之PCA降维算法(一)调库实现

PCA代码实现思路

PCA是工业界对数据特征进行降维所使用的非常经典的算法之一。
python代码中的实现思路:
1.导入相应的包
2对数据进行处理,包括缩放,洗牌等操作
3.建立模型
4.训练模型(这里的训练有返回值,返回的就是降维处理好的数据)
5.可视化处理(当维度降到2维或3维,可以进行可视化处理)

PCA降维代码及注释

# 以datasets中的恶性肿瘤数据为例
# 画出降维后的可视化图形
from matplotlib import pyplot as plt
from sklearn.datasets import load_breast_cancer
from sklearn.decomposition import PCA
# 设置中文字体和负号正常显示
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 读取数据
data = load_breast_cancer()
X = data.data
y = data.target
# 创建模型
model_pca = PCA(n_components=2)
# 训练模型 获得降维后的数据
X_new = model_pca.fit_transform(X)
# 打印一些数据值
print('特征向量是:',model_pca.components_)
print('特征值是:',model_pca.explained_variance_)
print('特征占比是:',model_pca.explained_variance_ratio_)
# 画图
plt.title('降维后的数据可视化')
plt.scatter(X_new[y==0,0],X_new[y==0,1],c='r',label='良性')
plt.scatter(X_new[y==1,0],X_new[y==1,1],c='g',label='恶性')
plt.legend()
plt.show()

机器学习之PCA降维算法(一)调库实现_第1张图片

总结

降维后的两个特征并没有准确的物理表达,就是说我们并不知道降维后的两个特征表征的是什么意思,它们属于原有三十维的特征的压缩。
降维会损失一些特征价值,但是很小很小,相对于大维度庞大的计算量,这样的降维还是利大于弊。

你可能感兴趣的:(机器学习算法思想及代码实现,机器学习,PCA,降维算法)