实战 PCA
简介
PCA
code
#加载数据
import pandas as pd
import numpy as np
data = pd.read_csv('iris_data.csv')
data.head(100)
print(pd.value_counts(data.loc[:,'label']))
#定义X,y
X = data.drop(['target','label'],axis=1)#去掉最后两列
y = data.loc[:,'label']
#建立模型
from sklearn.neighbors import KNeighborsClassifier
KNN = KNeighborsClassifier(n_neighbors=3)#选用最近的三个点来预测新的点属于哪一类
KNN.fit(X,y)
y_predict = KNN.predict(X)
from sklearn.metrics import accuracy_score
accuracy = accuracy_score(y,y_predict)
print(accuracy)
#将数据进行标准化处理
from sklearn.preprocessing import StandardScaler
X_norm = StandardScaler().fit_transform(X)
print(X_norm)
#数据可视化
%matplotlib inline
from matplotlib import pyplot as plt
fig1 = plt.figure(figsize=(20,5))
plt.subplot(121)
plt.hist(X.loc[:,'sepal length'],bins=100)#这里只取sepal length这一个维度
plt.subplot(122)
plt.hist(X_norm[:,0],bins=100)#将标准化处理后的数据可视化
plt.show()
#计算均值和标准差
x1_mean = X.loc[:,'sepal length'].mean()#原数据的均值
x1_norm_mean = X_norm[:,0].mean()#处理后数据的均值
x1_sigma = X.loc[:,'sepal length'].std()#原数据的标准差
x1_norm_sigma = X_norm[:,0].std()#处理后数据的标准差
print(x1_mean,x1_sigma,x1_norm_mean,x1_norm_sigma)
#看一下原数据的维度,下面要用
print(X.shape)
# pca analysis
from sklearn.decomposition import PCA
pca = PCA(n_components=4)#原数据是维度是4,要进行同等维度的PCA处理,故n_components=4
X_pca = pca.fit_transform(X_norm)#这里已经是经过PCA处理的主成分了
#计算各维度下的主成分的方差比例
var_ratio = pca.explained_variance_ratio_
print(var_ratio)
#可视化数据
fig2 = plt.figure(figsize=(20,5))
plt.bar([1,2,3,4],var_ratio)#有4个维度,所以这里是1,2,3,4
plt.xticks([1,2,3,4],['PC1','PC2','PC3','PC4'])#给每维度的主成分的方差比例图加上名称
plt.ylabel('variance ratio of each PC')#给y轴加上名称
plt.show()
pca = PCA(n_components=2) #因为我们要把数据维度降为2,所以这里n_components=2
X_pca = pca.fit_transform(X_norm)
X_pca.shape #看一下维度,这里已经为2了
type(X_pca)#看一下类型
#可视化数据
fig3 = plt.figure(figsize=(10,6))
setosa = plt.scatter(X_pca[:,0][y==0],X_pca[:,1][y==0])#标签为0的
versicolor = plt.scatter(X_pca[:,0][y==1],X_pca[:,1][y==1])#标签为1的
virginica = plt.scatter(X_pca[:,0][y==2],X_pca[:,1][y==2])#标签为2的
plt.legend((setosa,versicolor,virginica),('setosa','versicolor','virginica'))
plt.xlabel('PC1')
plt.ylabel('PC2')
plt.show()
KNN = KNeighborsClassifier(n_neighbors=3)
KNN.fit(X_pca,y)
y_predict = KNN.predict(X_pca)
from sklearn.metrics import accuracy_score
accuracy = accuracy_score(y,y_predict)
print(accuracy)
image
实战 PCA的更多相关文章
- 主成分分析(PCA)原理及R语言实现
原理: 主成分分析 - stanford 主成分分析法 - 智库 主成分分析(Principal Component Analysis)原理 主成分分析及R语言案例 - 文库 主成分分析法的原理应用及 ...
- 主成分分析(PCA)原理及R语言实现 | dimension reduction降维
如果你的职业定位是数据分析师/计算生物学家,那么不懂PCA.t-SNE的原理就说不过去了吧.跑通软件没什么了不起的,网上那么多教程,copy一下就会.关键是要懂其数学原理,理解算法的假设,适合解决什么 ...
- 掌握Spark机器学习库(课程目录)
第1章 初识机器学习 在本章中将带领大家概要了解什么是机器学习.机器学习在当前有哪些典型应用.机器学习的核心思想.常用的框架有哪些,该如何进行选型等相关问题. 1-1 导学 1-2 机器学习概述 1- ...
- 《机器学习实战》学习笔记——第13章 PCA
1. 降维技术 1.1 降维的必要性 1. 多重共线性--预测变量之间相互关联.多重共线性会导致解空间的不稳定,从而可能导致结果的不连贯.2. 高维空间本身具有稀疏性.一维正态分布有68%的值落于正负 ...
- 机器学习实战 - 读书笔记(13) - 利用PCA来简化数据
前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习心得,这次是第13章 - 利用PCA来简化数据. 这里介绍,机器学习中的降维技术,可简化样品数据. ...
- 机器学习实战(Machine Learning in Action)学习笔记————09.利用PCA简化数据
机器学习实战(Machine Learning in Action)学习笔记————09.利用PCA简化数据 关键字:PCA.主成分分析.降维作者:米仓山下时间:2018-11-15机器学习实战(Ma ...
- 《机器学习实战》学习笔记第十三章 —— 利用PCA来简化数据
相关博文: 吴恩达机器学习笔记(八) —— 降维与主成分分析法(PCA) 主成分分析(PCA)的推导与解释 主要内容: 一.向量內积的几何意义 二.基的变换 三.协方差矩阵 四.PCA求解 一.向量內 ...
- python异常值(outlier)检测实战:KMeans + PCA + IsolationForest + SVM + EllipticEnvelope
机器学习_深度学习_入门经典(博主永久免费教学视频系列) https://study.163.com/course/courseMain.htm?courseId=1006390023&sha ...
- 【机器学习实战】第13章 利用 PCA 来简化数据
第13章 利用 PCA 来简化数据 降维技术 场景 我们正通过电视观看体育比赛,在电视的显示器上有一个球. 显示器大概包含了100万像素点,而球则可能是由较少的像素点组成,例如说一千个像素点. 人们实 ...
- 13机器学习实战之PCA(2)
PCA——主成分分析 简介 PCA全称Principal Component Analysis,即主成分分析,是一种常用的数据降维方法.它可以通过线性变换将原始数据变换为一组各维度线性无关的表示,以此 ...
随机推荐
- 【自用】MySQL数据库基本操作
docker 中下载 mysql docker pull mysql 启动 docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=12 ...
- MySQL 参考资料
官方文档:https://dev.mysql.com/doc/refman/5.7/en/ 书: 1.<高性能MySQL> 2.<MySQL是怎样运行的:从根儿上理解MySQL> ...
- 【命令详解001】top
top命令可以用于实时监控cpu的状态,显示系统中各个进程的资源占用情况. 本次来详细看下top命令. 常用命令示例: top # 对,无参数的top命令是最长用的资源监控命令. [root@VM_0 ...
- Dify接入RAGFlow无返回结果
0. 前言 在介绍该问题的解决方法前,先谈一谈最近一段时间使用Dify和RAGFlow的一些感受,希望可以给有需要的人提供一些思路或帮助.需要解决方法的可以直接跳到第4部分. 最近在摸索基于知识库的问 ...
- 解决 Dify 部署中 Podman WSL 容器文件权限问题
解决 Dify 部署中 Podman WSL 容器文件权限问题 在使用 Podman 进行 Dify 部署时,遇到了一个关键问题:启动服务时出现 initdb: error: could not ch ...
- K8s新手系列之Pod的重启策略
概述 K8s中Pod的重启策略具有确保服务连续性.保证任务完整性.提升资源利用效率.便于故障排查的作用 Pod的重启策略可以根据restartPolicy字段定义. 重启策略适用于pod对象中的所有容 ...
- 【MOOC】华中科技大学操作系统慕课答案-期末测试题
文章目录 单选题 填空题 判断题 主观题 单选题 1 当操作系统处理缺页中断的时候,CPU处在 . A. 用户态 √B. 核态 C. 不确定的状态 D. 空闲状态 2 操作系统的用户界面可以分为两 ...
- 基于ThinkPHP5知识付费系统AntPayCMS
历时6个月开发基于ThinkPHP5.1知识付费系统AntPayCMS,自己作IT开发已经10年,一直想自己开发自己的系统,虽然看网上也有很多知识付费类的网站的,但基于TP基本很少,而且自己也一直想做 ...
- 仿EXCEL插件,智表ZCELL产品V2.1 版本发布,增加列标、行标自定义设置及单元格属性自定义相关功能,优化公式随动功能
详细请移步 智表(ZCELL)官网www.zcell.net 更新说明 这次更新主要应用户要求,增加列标.行标自定义设置及单元格属性自定义相关功能,优化公式随动功能 ,欢迎大家体验使用. 本次版本更 ...
- 单服务器高性能模式:Reactor 与Proactor
极客时间:<从 0 开始学架构>:单服务器高性能模式:Reactor 与Proactor 1.引言 单服务器高性能的 PPC 和 TPC 模式,它们的优点是实现简单,缺点是都无法支撑高并发 ...