一.数据集介绍
鸢尾花数据集是机器学习领域中广泛使用的一个数据集,它包含三个品种的鸢尾花,分别是Setosa(山鸢尾)、Versicolor(杂色鸢尾)和Virginica(维吉尼亚鸢尾)。每个样本包含四个特征,分别是花萼长度、花萼宽度、花瓣长度和花瓣宽度。
二.获取数据集
from sklearn.datasets import load_iris
#加载鸢尾花数据集,并显示属性
#加载数据集
mydataset= load_iris()
#查看数据集信息
print('\n查看数据集信息-->\n', mydataset.data[:5])
#查看目标值
print('mydataset.target-->\n', mydataset.target)
#查看目标值名字
print('mydataset.target_names-->\n', mydataset.target_names)
#查看特征名
print('mydataset.feature_names-->\n', mydataset.feature_names)
#查看数据集描述
print('\nmydataset.DESCR-->\n', mydataset.DESCR)
#数据文件路径
print('mydataset.filename-->\n', mydataset.filename)
结果:
三.数据基本处理
from sklearn.datasets import load_iris
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
#加载数据集
iris_data = load_iris()
#数据展示
iris_d = pd.DataFrame(iris_data['data'],columns=iris_data.feature_names)
print(iris_d)
iris_d['target'] = iris_data.target
print(iris_d)
feature_names = list(iris_data.feature_names)
print(feature_names)
for i in range(len(feature_names)):
for j in range(i+1,len(feature_names)):
col1 = feature_names[i]
col2 = feature_names[j]
sns.lmplot(x=col1,y=col2,hue='target',data=iris_d,fit_reg=False)
plt.xlabel(col1)
plt.ylabel(col2)
plt.title(f'{col1} vs {col2}')
plt.show()
四.数据集划分
from sklearn.model_selection import train_test_split
#数据集划分
#加载数据集
mydataset = load_iris()
# 2划分数据集
X_train, X_test, y_train, y_test=train_test_split(mydataset.data, mydataset.target,
test_size=0.3, random_state=22)
print('数据总数量', len(mydataset.data))
print('训练集中的x-特征值', len(X_train))
print('测试集中的x-特征值', len(X_test))
print(y_train)
五.模型训练和预测
#
导入类库
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
mydataset= load_iris()
# 2数据基本处理
x_train, x_test, y_train, y_test = train_test_split(mydataset.data, mydataset.target, test_size=0.2,random_state=22)
# 3数据集预处理-数据标准化
transfer = StandardScaler()
x_train= transfer.fit_transform(x_train)
#让测试集的均值和方法,转换测试集数据;
x_test= transfer.transform(x_test)
# 4机器学习(模型训练)
estimator = KNeighborsClassifier(n_neighbors=3)
estimator.fit(x_train, y_train)
# 5模型评估直接计算准确率100个样本中模型预测对了多少
myscore= estimator.score(x_test, y_test)
print(‘myscore-->’, myscore)
# 6模型预测
#需要对待预测数据,执行标准化
print('通过模型查看分类类别-->', estimator.classes_)
mydata=[[5.1, 3.5, 1.4, 0.2],
[4.6, 3.1, 1.5, 0.2]]
mydata= transfer.transform(mydata)
print('mydata-->', mydata)
mypred= estimator.predict(mydata)
print('mypred-->\n', mypred)
mypred= estimator.predict_proba(mydata)
print('mypred-->\n', mypred)