没有合适的资源?快使用搜索试试~ 我知道了~
首页用Jupyter notebook完成Iris数据集的 Fisher线性分类,并学习数据可视化技术
用Jupyter notebook完成Iris数据集的 Fisher线性分类,并学习数据可视化技术
9 下载量 107 浏览量
更新于2023-03-16
评论 1
收藏 103KB PDF 举报
这里写自定义目录标题一、关于Fisher算法的主要思想与数学计算步骤已在上次博客中有讲到。二、用scikit-learn库中也有LDA的函数,下面给出测试代码三、完成Iris数据集的 Fisher线性分类,及实现可视化 一、关于Fisher算法的主要思想与数学计算步骤已在上次博客中有讲到。 若不会清楚,请访问次链接 二、用scikit-learn库中也有LDA的函数,下面给出测试代码 from sklearn import datasets, cross_validation,discriminant_analysis #####################################
资源详情
资源评论
资源推荐
用用Jupyter notebook完成完成Iris数据集的数据集的 Fisher线性分类,并学习数据可视化技线性分类,并学习数据可视化技
术术
这里写自定义目录标题这里写自定义目录标题一、关于Fisher算法的主要思想与数学计算步骤已在上次博客中有讲到。二、用scikit-learn库中也有LDA的函数,下面给出测试代码三、
完成Iris数据集的 Fisher线性分类,及实现可视化
一、关于一、关于Fisher算法的主要思想与数学计算步骤已在上次博客中有讲到。算法的主要思想与数学计算步骤已在上次博客中有讲到。
若不会清楚,请访问次链接
二、用二、用scikit-learn库中也有库中也有LDA的函数,下面给出测试代码的函数,下面给出测试代码
from sklearn import datasets, cross_validation,discriminant_analysis
###############################################################################
#用莺尾花数据集
def load_data():
iris=datasets.load_iris()
return cross_validation.train_test_split(iris.data,iris.target,test_size=0.25,random_state=0,stratify=iris.target)
#返回为: 一个元组,依次为:训练样本集、测试样本集、训练样本的标记、测试样本的标记
###############################################################################
def test_LinearDiscriminantAnalysis(*data):
x_train,x_test,y_train,y_test=data
lda=discriminant_analysis.LinearDiscriminantAnalysis()
lda.fit(x_train,y_train)
print('Coefficients:%s, intercept %s'%(lda.coef_,lda.intercept_))#输出权重向量和b
print('Score: %.2f' % lda.score(x_test, y_test))#测试集
print('Score: %.2f' % lda.score(x_train, y_train))#训练集
###############################################################################
x_train,x_test,y_train,y_test=load_data()
test_LinearDiscriminantAnalysis(x_train,x_test,y_train,y_test)
运行结果:
对比结果发现:原本的鸢尾花的测试集的预测准确度为100%,但经过分类器训练后,变成了97%也就是我们所说的训练集。
三、完成三、完成Iris数据集的数据集的 Fisher线性分类,及实现可视化线性分类,及实现可视化
Fisher的种映射关系还有一种作用就是作为降维技术,称为监督降维技术(因为是有训练数据的,所以称为监督)
from sklearn import datasets, cross_validation,discriminant_analysis
###############################################################################
#用莺尾花数据集
def load_data():
iris=datasets.load_iris()
return cross_validation.train_test_split(iris.data,iris.target,test_size=0.25,random_state=0,stratify=iris.target)
#返回为: 一个元组,依次为:训练样本集、测试样本集、训练样本的标记、测试样本的标记
###############################################################################
def plot_LDA(converted_X,y):
'''
绘制经过 LDA 转换后的数据
:param converted_X: 经过 LDA转换后的样本集
:param y: 样本集的标记
:return: None
'''
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
fig=plt.figure()
ax=Axes3D(fig)
colors='rgb'
markers='o*s'
for target,color,marker in zip([0,1,2],colors,markers):
pos=(y==target).ravel()
X=converted_X[pos,:] ax.scatter(X[:,0], X[:,1], X[:,2],color=color,marker=marker,
label="Label %d"%target)
ax.legend(loc="best")
fig.suptitle("Iris After LDA")
plt.show()
###############################################################################
import numpy as np
x_train,x_test,y_train,y_test=load_data()
X=np.vstack((x_train,x_test))#沿着竖直方向将矩阵堆叠起来,把训练与测试的数据放一起来看
Y=np.vstack((y_train.reshape(y_train.size,1),y_test.reshape(y_test.size,1)))#沿着竖直方向将矩阵堆叠起来
lda = discriminant_analysis.LinearDiscriminantAnalysis()
lda.fit(X, Y)
converted_X=np.dot(X,np.transpose(lda.coef_))+lda.intercept_
weixin_38516956
- 粉丝: 6
- 资源: 973
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0