python使用QDA进行二次判别分析
什么是二次判别法
二次判别属于距离判别法中的内容,以两总体距离判别法为例,对总体G1,,G2,当他们各自的协方差矩阵Σ1,Σ2不相等时,判别函数因为表达式不可化简而不再是线性的而是二次的,这时使用的构造二次判别函数进行判别类别的方法叫做二次判别法。
python中使用sklearn中的QuadraticDiscriminantAnalysis来进行二次判别分析,这里采用鸢尾花数据进行分类。
train_test_split切分训练集和测试集
这是sklearn中对数据进行切分的一个方法
X_train, X_test, y_train, y_test=sklearn.model_selection.train_test_split(X,y train_size=None, random_state=None)
X:数据的特征集
y:数据的目标值
trani_size:表示训练集和测试集的划分,trani_size=0.4表示训练集和测试集
4/6分
random_state:random_state=int表示每次划分的训练集和测试集是相同的,若没有设置或者int=0就是每次划分训练集和测试集是随机的
二次判别法
from sklearn.datasets import load_iris
import numpy as np
from sklearn import datasets
from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis
from sklearn.model_selection import train_test_split
iris_data = load_iris()
X = iris_data.data
y = iris_data.targetX_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.4,random_state=3)QDA = QuadraticDiscriminantAnalysis()QDA_fit = QDA.fit(X_train,y_train)
QDA_pre = QDA_fit.predict(X_test)print(np.array([QDA_pre,y_test]))#比较训练集和测试机的结果print('准确率:'+str(QDA.score(X_test,y_test)))#准确率
结果:
[[0 0 0 0 0 2 1 0 2 1 1 0 1 1 2 0 2 2 2 0 2 2 2 1 0 2 2 1 1 1 0 0 2 1 0 01 0 2 2 2 1 0 0 2 1 0 2 2 1 0 0 2 1 1 0 2 0 2 1][0 0 0 0 0 2 1 0 2 1 1 0 1 1 2 0 1 2 2 0 2 2 2 1 0 2 2 1 1 1 0 0 2 1 0 01 0 2 1 2 1 0 0 2 1 0 1 2 1 0 0 2 1 1 0 2 0 2 1]]
准确率:0.95
python使用QDA进行二次判别分析相关推荐
- python判别分析_二次判别分析Quadratic Discriminant Analysis(QDA)
与线性判别分析类似,二次判别分析是另外一种线性判别分析算法,二者拥有类似的算法特征,区别仅在于:当不同分类样本的协方差矩阵相同时,使用线性判别分析:当不同分类样本的协方差矩阵不同时,则应该使用二次判别 ...
- 二次判别分析(QDA)和Python实现
我们将在本文中介绍的模型属于称为高斯判别分析(GDA)模型的类别. 请注意,高斯判别分析模型是生成模型! 尽管它的名字叫做判别模型,但是他是生成模型. 给定N个输入变量x和相应的目标变量t的训练数据集 ...
- R语言线性判别分析(LDA),二次判别分析(QDA)和正则判别分析(RDA)
判别分析包括可用于分类和降维的方法.线性判别分析(LDA)特别受欢迎,因为它既是分类器又是降维技术.二次判别分析(QDA)是LDA的变体,允许数据的非线性分离.最后,正则化判别分析(RDA)是LDA和 ...
- 线性判别分析(LDA),二次判别分析(QDA)和正则判别分析(RDA)
判别分析包括可用于分类和降维的方法.线性判别分析(LDA)特别受欢迎,因为它既是分类器又是降维技术.二次判别分析(QDA)是LDA的变体,允许数据的非线性分离.最后,正则化判别分析(RDA)是LDA和 ...
- R语言惩罚逻辑回归、线性判别分析LDA、广义加性模型GAM、多元自适应回归样条MARS、KNN、二次判别分析QDA、决策树、随机森林、支持向量机SVM分类优质劣质葡萄酒十折交叉验证和ROC可视化
最近我们被客户要求撰写关于葡萄酒的研究报告,包括一些图形和统计输出. 介绍 数据包含有关葡萄牙"Vinho Verde"葡萄酒的信息.该数据集有1599个观测值和12个变量,分别是 ...
- python数据挖掘课程】二十一.朴素贝叶斯分类器详解及中文文本舆情分析
#2018-04-06 13:52:30 April Friday the 14 week, the 096 day SZ SSMR python数据挖掘课程]二十一.朴素贝叶斯分类器详解及中文文本舆 ...
- 判别器loss为0_scikitlearn—线性判别分析和二次判别分析
线性判别分析(discriminant_analysis.LinearDiscriminantAnalysis)和二次判别分析(discriminant_analysis.QuadraticDiscr ...
- 【数学建模】Matlab实现判别分析(线性判别和二次判别分析)
Matlab实现判别分析(线性判别和二次判别分析) 一.简介 二.判别分析的方法 2.1 费歇(FISHER)判别思想 2.1 贝叶斯(BAYES)判别思想 三.Matlab 实现判别分析 3.1 代 ...
- 使用Python,Opencv进行二维直方图的计算及绘制
使用Python,Opencv进行二维直方图的计算及绘制 1. 效果图 2. 源码 参考 这篇博客将介绍如何使用Python,Opencv进行二维直方图的计算及绘制(分别用Opencv和Numpy计算 ...
最新文章
- 【项目管理】上线切割计划实践
- 【编程4】插入排序+快速排序+LeetCode.148(排序链表)
- mysql数据库的逻辑架构和存储引擎
- [工程测量]工程测量个人期中复习笔记
- Asp.net MVC - 使用PRG模式(附源码)
- html 字体设置草体,CSS 网页安全字体
- 大厂面试|字节跳动面试题汇总
- echarts生成三维柱状图
- [zz] 基于sinc的音频重采样(一):原理
- 第七章 本源时空(补充)
- PMO和PM如何准备项目状态报告及进行项目进度汇报?【附项目状态表和进度跟踪表】
- EDR端点检测与响应
- 超详细Shell学习教程第二篇
- iOS ffmpeg+OpenGL播放yuv+openAL 快放 慢放 视频播放器
- 未能加载文件或程序集“microsoft.office.interop.excel.version=15.0.0,culture=neutral
- 帝国理工计算机科学硕士,帝国理工计算机硕士介绍
- 沃尔玛logo_最受欢迎的云项目,沃尔玛对开源的投资以及更多
- 基于机器学习的阿里智能助理在电商领域的架构构建与实践-CSDN公开课-专题视频课程...
- git教程 自学笔记
- 各种media格式说明