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])
# 可以用这种方法画出某几类颜色的圆点

相关文章
|
4天前
|
机器学习/深度学习
【视频】R语言LDA线性判别、QDA二次判别分析分类葡萄酒品质数据|数据分享(下)
【视频】R语言LDA线性判别、QDA二次判别分析分类葡萄酒品质数据|数据分享
13 0
|
4天前
|
机器学习/深度学习 算法 数据可视化
【视频】R语言LDA线性判别、QDA二次判别分析分类葡萄酒品质数据|数据分享(上)
【视频】R语言LDA线性判别、QDA二次判别分析分类葡萄酒品质数据|数据分享
15 0
|
4天前
|
机器学习/深度学习 算法 Serverless
数据分享|R语言武汉流动人口趋势预测:灰色模型GM(1,1)、ARIMA时间序列、logistic逻辑回归模型
数据分享|R语言武汉流动人口趋势预测:灰色模型GM(1,1)、ARIMA时间序列、logistic逻辑回归模型
11 0
|
17天前
|
搜索推荐 数据挖掘 大数据
基于LDA主题模型聚类的商品评论文本挖掘
基于LDA主题模型聚类的商品评论文本挖掘
13 0
|
16天前
|
机器学习/深度学习 算法 索引
R语言逻辑回归logistic模型分析泰坦尼克titanic数据集预测生还情况
R语言逻辑回归logistic模型分析泰坦尼克titanic数据集预测生还情况
21 0
|
6月前
|
机器学习/深度学习 Python
PCA-ANN-小麦分类
PCA-ANN-小麦分类
|
机器学习/深度学习 自然语言处理 算法
机器学习算法(五):基于企鹅数据集的决策树分类预测
机器学习算法(五):基于企鹅数据集的决策树分类预测
|
数据处理 索引
使用朴素贝叶斯对电影评论分类
使用朴素贝叶斯对电影评论分类
142 0
使用朴素贝叶斯对电影评论分类
|
算法
基于朴素贝叶斯算法对肿瘤类别分类
基于朴素贝叶斯算法对肿瘤类别分类
141 0
基于朴素贝叶斯算法对肿瘤类别分类