欢迎来到机器学习的世界
博客主页:卿云阁欢迎关注点赞收藏⭐️留言
本文由卿云阁原创!
本阶段属于练气阶段,希望各位仙友顺利完成突破
首发时间:2021年3月28日
✉️希望可以和大家一起完成进阶之路!
作者水平很有限,如果发现错误,请留言轰炸哦!万分感谢!
目录
一、知识补充
二、学生分类
三. 鸢尾花
一、知识补充
1.label = df.Kind和data = df.iloc[:,0:-1]
label = df.Kind data = df.iloc[:,0:-1]
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)
3.LDA降维处理
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis lda = LinearDiscriminantAnalysis(n_components=3) X = lda.fit_transform(data,label.astype(int))
4.x = X[:,0],y = X[:,1],z = X[:,2](取行)
5.空间三维画图
fig = plt.figure()
fig = plt.figure()
ax = Axes3D(fig)
ax = Axes3D(fig)
ax.scatter(x, y, z, c=label)
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'})
6.画二维图
scatter = plt.scatter(x,y,c=label)
classes = ['文科生','理科生','体育生','艺术生']
plt.legend(handles = scatter.legend_elements()[0],labels=classes,fontsize=16)
二、学生分类
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)
三. 鸢尾花
象征
欧洲人钟爱鸢尾花,认为它象征光明和自由;在我国常用以象征爱情和友谊,鹏程万里,前途无量明察秋毫;在古代埃及,鸢尾花是力量与雄辩的象征。
Iris数据集包含有四个属性一个标签
四个属性分别是
- 花萼(Sepall)长度
- 花萼宽度
- 花瓣(Petal)长度
- 花瓣宽度
一个标签,用来说明是哪一种鸢尾花
- 山鸢尾(Setosa)
- 变色鸢尾(versicolor)
- 维吉尼亚鸢尾(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)