LDA降维算法

欢迎来到机器学习的世界 
博客主页:卿云阁

欢迎关注点赞收藏⭐️留言

本文由卿云阁原创!

本阶段属于练气阶段,希望各位仙友顺利完成突破

首发时间:2021年3月28日

✉️希望可以和大家一起完成进阶之路!

作者水平很有限,如果发现错误,请留言轰炸哦!万分感谢!


目录

一、知识补充

二、学生分类

 三. 鸢尾花

LDA降维算法_第1张图片

 

一、知识补充

1.label = df.Kind和data = df.iloc[:,0:-1]


label = df.Kind
data = df.iloc[:,0:-1]

LDA降维算法_第2张图片

 

LDA降维算法_第3张图片

 

2.label=df.Kind.map({'WEN':0,'文科':1,'理科':2,'体育':3})(两者是等价的)

label.replace('WEN',1,inplace=True)
label.replace('LI',2,inplace=True)
label.replace('TI',3,inplace=True)
label.replace('YI',4,inplace=True)

LDA降维算法_第4张图片

 

3.LDA降维处理

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
lda = LinearDiscriminantAnalysis(n_components=3)
X = lda.fit_transform(data,label.astype(int))

LDA降维算法_第5张图片

 4.x = X[:,0],y = X[:,1],z = X[:,2](取行)

LDA降维算法_第6张图片

 5.空间三维画图

fig = plt.figure()

fig = plt.figure()

LDA降维算法_第7张图片

 ax = Axes3D(fig)

ax = Axes3D(fig)

LDA降维算法_第8张图片

 

ax.scatter(x, y, z, c=label)

LDA降维算法_第9张图片

 

ax.set_zlabel('Z', fontdict={'size': 15, 'color': 'red'})
ax.set_ylabel('Y', fontdict={'size': 15, 'color': 'red'})
ax.set_xlabel('X', fontdict={'size': 15, 'color': 'red'})

LDA降维算法_第10张图片

6.画二维图

 scatter = plt.scatter(x,y,c=label) 

LDA降维算法_第11张图片

 

classes = ['文科生','理科生','体育生','艺术生'] 
plt.legend(handles = scatter.legend_elements()[0],labels=classes,fontsize=16)

LDA降维算法_第12张图片

 


二、学生分类

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from sklearn.preprocessing import StandardScaler, OneHotEncoder
## 解决中文字符显示不全
plt.rcParams['font.sans-serif'] = ['SimHei'] 
plt.rcParams['axes.unicode_minus'] = False  
df = pd.read_excel('d:\\apdata\\scores.xlsx')
df.head()



label = df.Kind
data = df.iloc[:,0:-1]

label.replace('WEN',1,inplace=True)
label.replace('LI',2,inplace=True)
label.replace('TI',3,inplace=True)
label.replace('YI',4,inplace=True)


X



from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
lda = LinearDiscriminantAnalysis(n_components=3)
X = lda.fit_transform(data,label.astype(int))


x = X[:,0]
y = X[:,1]
z = X[:,2]


from mpl_toolkits.mplot3d import Axes3D  # 空间三维画图
# 绘制散点图
fig = plt.figure()
ax = Axes3D(fig)
ax.scatter(x, y, z, c=label)
# 添加坐标轴(顺序是Z, Y, X)
ax.set_zlabel('Z', fontdict={'size': 15, 'color': 'red'})
ax.set_ylabel('Y', fontdict={'size': 15, 'color': 'red'})
ax.set_xlabel('X', fontdict={'size': 15, 'color': 'red'})



lda = LinearDiscriminantAnalysis(n_components=2)
X = lda.fit_transform(data,label.astype(int))



x = X[:,0]
y = X[:,1]
scatter = plt.scatter(x,y,c=label) 
classes = ['文科生','理科生','体育生','艺术生'] 
plt.legend(handles = scatter.legend_elements()[0],labels=classes,fontsize=16)

LDA降维算法_第13张图片

 LDA降维算法_第14张图片


 三. 鸢尾花

象征

欧洲人钟爱鸢尾花,认为它象征光明和自由;在我国常用以象征爱情和友谊,鹏程万里,前途无量明察秋毫;在古代埃及,鸢尾花是力量与雄辩的象征。

Iris数据集包含有四个属性一个标签
四个属性分别是

  1. 花萼(Sepall)长度
  2. 花萼宽度
  3. 花瓣(Petal)长度
  4. 花瓣宽度

一个标签,用来说明是哪一种鸢尾花

  1. 山鸢尾(Setosa)
  2. 变色鸢尾(versicolor)
  3. 维吉尼亚鸢尾(virginica)
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from sklearn.preprocessing import StandardScaler, OneHotEncoder
plt.rcParams['font.sans-serif'] = ['SimHei'] 
plt.rcParams['axes.unicode_minus'] = False  
df = pd.read_csv('d:\\iris.csv')
df.head()
label = df.Species
data = df.iloc[:,0:-1]
label.replace('setosa',1,inplace=True)
label.replace('versicolor',2,inplace=True)
label.replace('virginica',3,inplace=True)
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
lda = LinearDiscriminantAnalysis(n_components=2)
X = lda.fit_transform(data,label.astype(int))
x = X[:,0]
y = X[:,1]
scatter = plt.scatter(x,y,c=label) 
classes = ['setosa','versicolor','virginica'] 
plt.legend(handles = scatter.legend_elements()[0],labels=classes,fontsize=16)

LDA降维算法_第15张图片

 

LDA降维算法_第16张图片

你可能感兴趣的:(人工智能,python)