python之实战----PCA、SVD、(NOnlinear PCA)KernelPCA、战iris
2017-11-11 21:39
369 查看
PCA
#-*- coding=utf-8 -*-
import numpy as np
from sklearn import datasets,decomposition,manifold
import matplotlib.pyplot as plt
def load_data():
iris=datasets.load_iris()
return iris.data,iris.target
def test_PCA(*data):
X,y=data
pca=decomposition.PCA(n_components=None)
pca.fit(X)
print('explained variance ratio : %s '%str(pca.explained_variance_ratio_))
if __name__=='__main__':
X,y=load_data()
test_PCA(X,y)
结果是四个特征值的比例4维度降到2维度:
PS E:\p> python test1.py
explained variance ratio : [ 0.92461621 0.05301557 0.01718514 0.00518309]
pca画图
#-*- coding=utf-8 -*-
import numpy as np
from sklearn import datasets,decomposition,manifold
import matplotlib.pyplot as plt
def load_data():
iris=datasets.load_iris()
return iris.data,iris.target
def test_PCA(*data):
X,y=data
pca=decomposition.PCA(n_components=None)
pca.fit(X)
print('explained variance ratio : %s '%str(pca.explained_variance_ratio_))
def plot_pca(*data):
X,y=data
pca=decomposition.PCA(n_components=2)#设置降到二维X[0],X[1]
pca.fit(X)
X_r=pca.transform(X)#将维度降低应用于X.
fig=plt.figure()
ax=fig.add_subplot(1,1,1)
'''
colors=((1,0,0),(0,1,0),(0,0,1),(0.5,0.5,0),(0,0.5,0.5),(0.5,0,0.5),
(0.4,0.6,0),(0.6,0.4,0),(0,0.6,0.4),(0.5,0.3,0.2),)
这里只用到前三个,因为我们知道鸢尾花数据集的特点
'''
colors = ['navy', 'turquoise', 'darkorange']
for label,color in zip(np.unique(y),colors):
#unique()保留数组中不同的值
position=y==label
ax.scatter(X_r[position,0],X_r[position,1],label="target= %d"%label,color=color)
ax.set_xlabel("X[0]")
ax.set_ylabel("X[1]")
ax.legend(loc="best")
ax.set_title("PCA")
plt.show()
if __name__=='__main__':
X,y=load_data()
plot_pca(X,y)
结果:
#-*- coding=utf-8 -*-
import numpy as np
from sklearn import datasets,decomposition,manifold
import matplotlib.pyplot as plt
def load_data():
iris=datasets.load_iris()
return iris.data,iris.target
def test_PCA(*data):
X,y=data
pca=decomposition.PCA(n_components=None)
pca.fit(X)
print('explained variance ratio : %s '%str(pca.explained_variance_ratio_))
if __name__=='__main__':
X,y=load_data()
test_PCA(X,y)
结果是四个特征值的比例4维度降到2维度:
PS E:\p> python test1.py
explained variance ratio : [ 0.92461621 0.05301557 0.01718514 0.00518309]
pca画图
#-*- coding=utf-8 -*-
import numpy as np
from sklearn import datasets,decomposition,manifold
import matplotlib.pyplot as plt
def load_data():
iris=datasets.load_iris()
return iris.data,iris.target
def test_PCA(*data):
X,y=data
pca=decomposition.PCA(n_components=None)
pca.fit(X)
print('explained variance ratio : %s '%str(pca.explained_variance_ratio_))
def plot_pca(*data):
X,y=data
pca=decomposition.PCA(n_components=2)#设置降到二维X[0],X[1]
pca.fit(X)
X_r=pca.transform(X)#将维度降低应用于X.
fig=plt.figure()
ax=fig.add_subplot(1,1,1)
'''
colors=((1,0,0),(0,1,0),(0,0,1),(0.5,0.5,0),(0,0.5,0.5),(0.5,0,0.5),
(0.4,0.6,0),(0.6,0.4,0),(0,0.6,0.4),(0.5,0.3,0.2),)
这里只用到前三个,因为我们知道鸢尾花数据集的特点
'''
colors = ['navy', 'turquoise', 'darkorange']
for label,color in zip(np.unique(y),colors):
#unique()保留数组中不同的值
position=y==label
ax.scatter(X_r[position,0],X_r[position,1],label="target= %d"%label,color=color)
ax.set_xlabel("X[0]")
ax.set_ylabel("X[1]")
ax.legend(loc="best")
ax.set_title("PCA")
plt.show()
if __name__=='__main__':
X,y=load_data()
plot_pca(X,y)
结果:
相关文章推荐
- 从PCA到Kernel PCA(Python)
- 机器学习实战 -> 利用PCA&&SVD来简化数据
- 机器学习实战——第十三/十四章:利用PCA和SVD来简化数据
- 机器学习实战及Python实现——奇异值分解(SVD)实现简单推荐系统
- 机器学习实战——PCA和SVD
- 【机器学习实战-python3】利用SVD简化数据
- 【机器学习实战-python3】利用PCA简化数据
- 实战智能推荐系统(10)-- 隐语义模型 LFM (Funk-SVD)
- python之实战----朴素贝叶斯之手写数字位图
- PYTHON机器学习实战——SVM支持向量机
- 数学之路-python计算实战(20)-机器视觉-拉普拉斯算子卷积滤波
- 实战 - Python基础 之 字符串格式化
- Python爬虫实战之爬糗事百科
- 基于python的PC文件自动同步系统
- 【极客学院】-python学习笔记-4-单线程爬虫 (提交表单抓取信息,实战练习)
- python实战===一行代码就能搞定的事情!
- Python进阶---python strip() split()函数实战(转)
- Python代码实战(初级篇)————4、猜数字
- python实战===百度文字识别sdk
- [Python 实战] - No.2 Python实现微博爬虫