机器学习之使用乳腺癌进行PCA降维初体验

大家好我是木木,只从2022年11月30日发布ChatGPT后,大模型迅速火热起来,人工智能作为当下最火的行业之一,很多人对它充满了好奇,接下来通过乳腺癌数据集带领大家进行PCA降维初体验。

算法思想

先说下算法思想,在人工智能机器视觉和大模型未出现之前,机器学习靠着支持向量机顶起一片天,那时候技术没有现如今发达,计算资源相对有限,而随着数据维度增加、特征增加相应的会出现一些挑战,如何在有限的计算资源内,解决更多的问题,PCA降维就此诞生。

数据维度增加:在高维空间内,计算具体的成本将会变得很高。

特征增加:高维空间内,不同的特征可能会有很多的相关性,导致特征冗余。

总的来说:特征构建时,特征之间信息有冗余,在尽可能保留重要的信息下,将高维数据(特征)变成低维数据(特征),可以提升计算性能,降低计算代价。

算法原理

PCA降维是一个无监督学习算法,通过线性变化,进行将高维数据转成低维数据,同时保留最终的要信息。实现方法很多,本次说的是SVD分解。

训练:做SVD分解,并通过右奇异向量选取最重要的X行并转置。

转换:将需要转换的数据输入和右奇异向量做矩阵相乘实现矩阵的降维。

使用乳腺癌进行PCA降维初体验

from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.decomposition import PCA


X, y = load_breast_cancer(return_X_y=True)
#划分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
#使用PCA降维
pca = PCA(n_components=10)
pca.fit(X=X_train)
#转换数据
X_train = pca.transform(X=X_train)
X_test = pca.transform(X=X_test)
print(f"降维后的数据维度:{X_train.shape},-----{X_test.shape}")
#构建模型
knn = KNeighborsClassifier(n_neighbors=5)
#训练模型
knn.fit(X = X_train, y = y_train)
#预测模型
pred = knn.predict(X_test)
print(pred)
#评估模型准确率
(pred == y_test).mean()

结果输出

数据特征从原先的30维度降到维度10

模型预测的结果准备率还在90%以上,还可以

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mumu-hn

点击打赏,感谢一路同行❤️

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值