import numpy as np
import matplotlib.pyplot as pltfrom matplotlib import cm
from mpl_toolkits.mplot3d import Axes3D
from sklearn.model_selection import train_test_split
from sklearn import datasets, linear_model,discriminant_analysisdef load_data():# 使用 scikit-learn 自带的 iris 数据集iris=datasets.load_iris()X_train=iris.datay_train=iris.targetreturn train_test_split(X_train, y_train,test_size=0.25,random_state=0,stratify=y_train)#线性判断分析LinearDiscriminantAnalysis
def test_LinearDiscriminantAnalysis(*data):X_train,X_test,y_train,y_test=datalda = discriminant_analysis.LinearDiscriminantAnalysis()lda.fit(X_train, y_train)print('Coefficients:%s, intercept %s'%(lda.coef_,lda.intercept_))print('Score: %.2f' % lda.score(X_test, y_test))# 产生用于分类的数据集
X_train,X_test,y_train,y_test=load_data()
# 调用 test_LinearDiscriminantAnalysis
test_LinearDiscriminantAnalysis(X_train,X_test,y_train,y_test)

def plot_LDA(converted_X,y):'''绘制经过 LDA 转换后的数据:param converted_X: 经过 LDA转换后的样本集:param y: 样本集的标记'''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()def run_plot_LDA():'''执行 plot_LDA 。其中数据集来自于 load_data() 函数'''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_plot_LDA(converted_X,Y)# 调用 run_plot_LDA
run_plot_LDA()

def test_LinearDiscriminantAnalysis_solver(*data):'''测试 LinearDiscriminantAnalysis 的预测性能随 solver 参数的影响'''X_train,X_test,y_train,y_test=datasolvers=['svd','lsqr','eigen']for solver in solvers:if(solver=='svd'):lda = discriminant_analysis.LinearDiscriminantAnalysis(solver=solver)else:lda = discriminant_analysis.LinearDiscriminantAnalysis(solver=solver,shrinkage=None)lda.fit(X_train, y_train)print('Score at solver=%s: %.2f' %(solver, lda.score(X_test, y_test)))# 调用 test_LinearDiscriminantAnalysis_solver
test_LinearDiscriminantAnalysis_solver(X_train,X_test,y_train,y_test)

def test_LinearDiscriminantAnalysis_shrinkage(*data):'''测试  LinearDiscriminantAnalysis 的预测性能随 shrinkage 参数的影响'''X_train,X_test,y_train,y_test=datashrinkages=np.linspace(0.0,1.0,num=20)scores=[]for shrinkage in shrinkages:lda = discriminant_analysis.LinearDiscriminantAnalysis(solver='lsqr',shrinkage=shrinkage)lda.fit(X_train, y_train)scores.append(lda.score(X_test, y_test))## 绘图fig=plt.figure()ax=fig.add_subplot(1,1,1)ax.plot(shrinkages,scores)ax.set_xlabel(r"shrinkage")ax.set_ylabel(r"score")ax.set_ylim(0,1.05)ax.set_title("LinearDiscriminantAnalysis")plt.show()
# 调用 test_LinearDiscr
test_LinearDiscriminantAnalysis_shrinkage(X_train,X_test,y_train,y_test)

转载于:https://www.cnblogs.com/tszr/p/11177949.html

吴裕雄--天生自然 人工智能机器学习实战代码:线性判断分析LINEARDISCRIMINANTANALYSIS...相关推荐

  1. python预测疾病_吴裕雄--天生自然python机器学习:使用Logistic回归从疝气病症预测病马的死亡率...

    ,除了部分指标主观和难以测量外,该数据还存在一个问题,数据集中有 30%的值是缺失的.下面将首先介绍如何处理数据集中的数据缺失问题,然 后 再 利 用 Logistic回 归 和随机梯度上升算法来预测 ...

  2. mysql 查询 系统字段 自然日_吴裕雄--天生自然python数据清洗与数据可视化:MYSQL、MongoDB数据库连接与查询、爬取天猫连衣裙数据保存到MongoDB...

    本博文使用的数据库是MySQL和MongoDB数据库.安装MySQL可以参照我的这篇博文:https://www.cnblogs.com/tszr/p/12112777.html 其中操作Mysql使 ...

  3. python电商爬虫源码_吴裕雄--天生自然PYTHON爬虫:爬取某一大型电商网站的商品数据...

    由于这里的目标是获取整个自由行的产品列表,因此还需要获取出发站点的列表,从不同的城市出发,会有不用的产品. 返回自由行的首页,单击搜索框左侧的出发站点,如下图: 切换到Headers界面: 可以看到此 ...

  4. 吴裕雄--天生自然 中医研究学习:入门

    中医学是研究人体生理病理,疾病诊断与防治以及摄生康复的一门医学科学,至今已有数千年的历史.中医学是"以中医药理论与实践经验为主体,研究人类生命活动中医学中健康与疾病转化规律及其预防.诊断.治 ...

  5. 吴裕雄--天生自然 高等数学学习:无穷级数

    转载于:https://www.cnblogs.com/tszr/p/11171448.html

  6. 吴裕雄--天生自然 JAVASCRIPT开发学习:DOM EventListener

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  7. 吴裕雄--天生自然 高等数学学习:高阶偏导数

    转载于:https://www.cnblogs.com/tszr/p/11165379.html

  8. 吴裕雄--天生自然 JAVASCRIPT开发学习:(String) 对象

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  9. 吴裕雄--天生自然 PYTHON3开发学习:输入和输出

    str = input("请输入:"); print ("你输入的内容是: ", str) # 打开一个文件 f = open("/tmp/foo.t ...

最新文章

  1. IT十八掌作业_java基础第六天_接口与适配器模式、多态、内部类
  2. Windows server 2008R2 DHCP服务器
  3. different color in Chrome Development Tool
  4. Matlab制作朱利表
  5. Spring+SpringMVC+maven使用@aspectJ添加切面
  6. 如何编辑SDE数据(转自ESRI中国社区)
  7. 作曲大师2019破解版|作曲大师音乐梦想家2019破解版下载 v2019.9(附安装破解图文教程)
  8. 恶意软件清理助手1.94使用后的问题
  9. 我这些年对游戏外挂辅助开发的一些心得和体会
  10. 放大电路中的反馈-反馈的基本概念及判断方法
  11. OpenCV学习笔记03:缩放裁剪图像与调整图像色调
  12. python制作自己的专属二维码
  13. 基于thinkphp5的开源cms
  14. ImageMagick将多张图片拼接成一张图片_爱剪辑如何把图片制作成视频
  15. pyecharts 世界地图国家中英文对照表
  16. c语言实验心得100字,实验心得100字_100个面试常见经典问题_100个面试问题和答案...
  17. 百度地图和百度飞桨招聘CV算法实习生
  18. php怎样获取当前时间,php中获取当前时间的函数
  19. 几种图像变换 刚体变换 仿射变换 投影变换
  20. Freeline - Android平台上的秒级编译方案

热门文章

  1. golang json 读写配置文件
  2. webpack基础概念
  3. selendroid之inspector
  4. Delphi xe7 android实现透明度可以调整的对话框
  5. oracle sqlplus 常用命令大全
  6. ndarray.shape[]返回值的意义
  7. java 优雅退出_java – 优雅地退出应用程序?
  8. 图解classloader加载class的流程及自定义ClassLoader
  9. C++ vector的内部实现原理及基本用法
  10. dataset中获取图像的名字_GDAL与OpenCV的图像像素读取格式互相转换