机器学习之鸢尾花的的预测

本文详细介绍了使用Python和scikit-learn库进行鸢尾花数据集的完整预测流程,包括数据导入、划分训练集和测试集、特征标准化、K-近邻(KNN)模型训练以及模型评估,最后计算并输出模型的准确率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

'''
完整的 鸢尾花预测流程
1.导入数据
2.切分数据集---->将数据集分为 训练集和测试集
3.特征预理---->使用归一化 或者  标准化  ---->因为不改变数据的分布情况,所以不会影响结果
4.训练模型
5.评估模型
'''
# 导入 鸢尾花数据
from  sklearn.datasets import load_iris
# 切割数据集的函数
from sklearn.model_selection import train_test_split
#特征处理
from  sklearn.preprocessing import  StandardScaler
# 模型函数
from  sklearn.neighbors import  KNeighborsClassifier
# 1.先导入数据
iris = load_iris()

# 2.切割数据集  传入  数据    目标值    训练集比例    随机数种子
x_train,x_test,y_train,y_test = train_test_split(iris.data,iris.target,train_size=0.2,random_state=22)
# 3.特征处理  ---标准化
transfer = StandardScaler()
x_train = transfer.fit_transform(x_train)
x_test = transfer.transform(x_test)
'''
4.模型训练
实例化模型函数
'''
# 实例化模型函数     选择k值范围大小  选 9 范围内的数量最多的种类确定为自己的种类
estimator= KNeighborsClassifier(n_neighbors=4)
# 使用训练集进行训练
estimator.fit(x_train,y_train)


# 5.模型评估
yEndpredict = estimator.predict(x_test)
#1.直接评测 结果
print("预测结果为:\n",yEndpredict )
print("预测结果为:\n",yEndpredict == y_test)

# 2.评测准确率
score = estimator.score(x_test,y_test)
print("该模型的准确率为:",score)
### 关于鸢尾花数据集的机器学习预测 #### 数据集概述 该数据集中包含了三种不同类型的鸢尾花(Iris setosa, Iris versicolor 和 Iris virginica),每种类型有50个样本,总共150个观测值[^3]。每个样本由四个特征描述:萼片长度、萼片宽度、花瓣长度以及花瓣宽度,单位均为厘米[^4]。 #### 特征与目标分类 对于这个特定的数据集而言,存在如下几个关键属性: - **特性**:sepal length (cm), sepal width (cm), petal length (cm), petal width (cm) - **类别标签**:Iris Setosa, Iris Versicolour, Iris Virginica 这些信息表明了每一朵鸢尾花的具体测量数值及其所属种类。 #### 正相关关系 通过绘制散点图可以观察到,在整个鸢尾花数据集中,所有不同的物种之间都存在着正向关联——即随着花瓣长度增加,相应的花瓣宽度也会增大[^2]。 ```python import matplotlib.pyplot as plt from sklearn import datasets import pandas as pd # 加载鸢尾花数据集 iris = datasets.load_iris() df = pd.DataFrame(data=iris.data, columns=iris.feature_names) plt.scatter(df['petal length (cm)'], df['petal width (cm)']) plt.title('Petal Length vs Width') plt.xlabel('Petal Length (cm)') plt.ylabel('Petal Width (cm)') plt.show() ``` #### 构建简单模型实例 下面展示了一个基于Python编程语言并利用`scikit-learn`来构建支持向量机(SVM)分类器的例子: ```python from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.svm import SVC from sklearn.metrics import accuracy_score X_train, X_test, y_train, y_test = train_test_split( iris.data, iris.target, test_size=0.3, random_state=42 ) scaler = StandardScaler().fit(X_train) scaled_X_train = scaler.transform(X_train) scaled_X_test = scaler.transform(X_test) svm_model = SVC(kernel='linear', C=1).fit(scaled_X_train, y_train) predictions = svm_model.predict(scaled_X_test) print(f'Accuracy Score: {accuracy_score(y_test, predictions):.2f}') ``` 此代码片段展示了如何加载数据、分割训练集和测试集、标准化输入变量、创建SVC对象并评估其性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值