LDA-小麦分类

简介: LDA-小麦分类

线性判别分析(LDA)是一种监督学习的降维技术,也就是说它的数据集的每个样本是有类别输出的。LDA的思想可以用一句话来概述,就是“投影后类内方差最小,类间方差最大”,也就是投影后希望每一种类别数据的投影点尽可能地接近,而不同类别的数据的类别中心之间的距离尽可能的大。(高内聚,低耦合)

  1. 对d维数据进行标准化处理(d为特征数量)
  2. 对每一类别,计算d维的均值向量
  3. 构造类间的散步矩阵和类内的散步矩阵
  4. 计算矩阵的特征值和对应的特征向量
  5. 选取前k个特征值对应的特征向量,构造一个d x k维的转换矩阵W,特征向量以列的形式排列
  6. 使用转换矩阵W将样本映射到新的特征子空间上

程序如下:

import numpy as np
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt
import numpy 
import pandas as pd
fp=open('seeds_dataset.txt','r')
ls=[]
for line in fp:
    line=line.strip('\n')   #将\n去掉
    ls.append(line.split('\t'))   #将空格作为分隔符将一个字符切割成一个字符数组
fp.close()
ls=numpy.array(ls,dtype=float)   #将其转换成numpy的数组,并定义数据类型为float
print(ls)
# 将文件转为DataFrame表格
ls_pd = pd.DataFrame(ls)
y = ls_pd.loc[:,7]

进行数据预处理

from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
data_std = sc.fit_transform(ls_pd.loc[:,1:6])

调用sklearn中的LDA

data_LDA = LinearDiscriminantAnalysis(n_components=2).fit_transform(data_std, y)

将结果画出

plt.figure(figsize=(8,4))
plt.title("sklearn_LDA")
plt.scatter(data_LDA[:, 0], data_LDA[:, 1], c = y)
plt.savefig("LDA.png",dpi=600)
plt.show()

另:

plt.figure(figsize=(8,4))
plt.title("sklearn_LDA")
plt.scatter([1,2,3], [4,5,6], c = [1,2,1])
# 可以用这种方法画出某几类颜色的圆点

相关文章
|
Linux 网络安全
掌握ls命令:完整指南、高级用法与常见问题解答 | 理解文件管理的关键工具
掌握ls命令:完整指南、高级用法与常见问题解答 | 理解文件管理的关键工具
2528 0
|
7月前
|
人工智能 自然语言处理 运维
AI时代 创作何为?AI如何重塑IT行业格局
本文探讨了AI时代创作的本质与IT行业的变革。在创作领域,AI带来范式革新、价值重构及能力升级;在IT行业,AI推动技术架构智能化、开发流程优化和业务模式创新。同时,文章分析了AI带来的挑战与机遇,并展望了AI与IT深度融合的未来,强调需关注伦理法规与跨领域发展,共同迎接智能化新时代。
1417 58
|
自然语言处理 JavaScript 网络协议
简单使用vitepress快速搭建一个文档网站
VitePress 是一个静态站点生成器 (SSG),类似的项目有docsify、VuePress、hexo。用 Markdown 编写的内容生成可以轻松部署到任何地方的静态 HTML 页。
300 9
|
PHP 数据库
laravel表单验证的exists、unique去除软删除字段的校验
虽然Laravel的验证系统非常强大和灵活,但在处理软删除数据时仍需要特别注意。通过正确使用验证规则,并在需要时创建自定义验证规则,你可以确保应用的数据验证既准确又高效。记得在对 `unique`和 `exists`规则进程自定义时,清晰地注明你排除软删除记录的意图,这将使得代码更容易理解和维护。
334 4
|
机器学习/深度学习 算法 PyTorch
深度学习中的图像风格迁移技术探析
图像风格迁移是近年来深度学习领域备受关注的研究方向之一。本文将从算法原理、实现步骤到应用案例,全面分析和探讨几种主流的图像风格迁移技术,为读者深入理解和应用这一技术提供详实的指南。 【7月更文挑战第2天】
618 1
|
存储 人工智能 算法
什么是 FPGA 异构计算|学习笔记
快速学习什么是 FPGA 异构计算
861 0
什么是 FPGA 异构计算|学习笔记
|
自然语言处理 Java 编译器
【软件设计师—基础精讲笔记10】第十章 程序设计语言基础
【软件设计师—基础精讲笔记10】第十章 程序设计语言基础
258 1
|
关系型数据库 MySQL
MySQL中如何处理NULL值以及如何使用正则表达式
MySQL中如何处理NULL值以及如何使用正则表达式
|
Java Maven
运行maven项目出现Error:java: JDK isn‘t specified for module ‘XXX‘
运行maven项目出现Error:java: JDK isn‘t specified for module ‘XXX‘
415 0
|
机器学习/深度学习 算法 Python
【Python机器学习】KNN进行水果分类和分类器实战(附源码和数据集)
【Python机器学习】KNN进行水果分类和分类器实战(附源码和数据集)
1155 1