使用scikit-learn中的KNN包实现对鸢尾花数据集或者自定义数据集的的预测。

使用scikit-learn中的KNN包实现对鸢尾花数据集或者自定义数据集的的预测。

python 复制代码
#导入鸢尾花数据集
from sklearn.datasets import load_iris,fetch_20newsgroups
#数据化可视包
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 MinMaxScaler,StandardScaler
from sklearn.neighbors import KNeighborsClassifier

#获取鸢尾花小规模数据集
iris=load_iris()
# print("鸢尾花的特征值:\n",iris['data'])
# print("鸢尾花的目标值:\n",iris['target'])
# print("鸢尾花的特征的名字:\n",iris['feature_names'])
# print("鸢尾花的目标值的名字:\n",iris['target_names'])
# print("鸢尾花的描述:\n",iris['DESCR'])
#数据可视化----只是为了数据可视化
iris_data1=pd.DataFrame(data=iris['data'],columns=['Sepal_Length', 'Sepal_Width', 'Petal_Length', 'Petal_Width'])
print("")
#填充目标值
iris_data1['target']=iris['target']
#画图展示
def plot_iris(data,col1,col2):
    # x y  x轴和y轴数据索引值
    # data 具体的数据
    # hue 目标值,可以通过不同的目标显示不同的颜色
    # fit_reg 是否进行线性拟合
    sns.lmplot(x=col1, y=col2, data=data, hue='target', fit_reg=False)
    plt.title(r'data show')
    plt.xlabel(col1)
    plt.ylabel(col2)
    plt.show()

plot_iris(iris_data1,'Sepal_Length','Petal_Width')
#数据集的划分
# 机器学习一般的数据集划分分为两部分
#     1. 训练数据:用于训练,构建模型
#     2. 测试数据:在模型校验时使用,用于评估模型是否有效
# 划分比例:
#     1. 训练集 : 70%    80%    75%
#     2. 测试集 : 30%    20%    25%
#数据集的划分
x_train,x_test,y_train,y_test= train_test_split(iris['data'],iris['target'],test_size=0.2,random_state=42)
print("训练集的特征值是 : \n", x_train)
print("测试集的特征值是 : \n", x_test)
print("训练集的目标值是 : \n", y_train)
print("测试集的目标值是 : \n", y_test)

print("训练集的特征值形状 : \n", x_train.shape)
print("测试集的特征值形状 : \n", x_test.shape)
print("训练集的目标值形状 : \n", y_train.shape)
print("测试集的目标值形状 : \n", y_test.shape)

#特征数据预处理API

# 1.实例化
transfer=MinMaxScaler(feature_range=(0, 1))
#2.进行转换,调用fit_transform
ret_maxmin_data=transfer.fit_transform(x_train)
ret_maxmin_data=transfer.fit_transform(x_test)
#特征工程-特征预处理 规划为均值0附近标准差差为1
transfer1=StandardScaler()
ret_train_data=transfer1.fit_transform(x_train)
ret_test_data=transfer1.fit_transform(x_test)
#机器学习 构建KNN
#step1构建KNN并实例化
n_neighbors_num=5
knn_model=KNeighborsClassifier(n_neighbors=n_neighbors_num)
#step2模型训练 输入训练集和训练集标签
knn_model.fit(ret_train_data,y_train)

#step3 评估模型
#使用训练好的模型进行预测
y_pre=knn_model.predict(ret_test_data)
print('预测值是\n',y_pre)
print("预测值和真实值的对比是:\n",y_pre==y_test)
#准确率计算,注意如果是归一化后的数据就得用归一化后的数据进行预测计算准确率,不然效果很差
score=knn_model.score(ret_test_data,y_test)
print(f'准确率是:{score}')
相关推荐
关山1 小时前
MCP实战
python·ai编程·mcp
悠哉悠哉愿意1 小时前
【Python语法基础学习笔记】if语句
笔记·python·学习
Q_Q19632884751 小时前
python的电影院座位管理可视化数据分析系统
开发语言·spring boot·python·django·flask·node.js·php
BYSJMG2 小时前
计算机大数据毕业设计推荐:基于Hadoop+Spark的食物口味差异分析可视化系统【源码+文档+调试】
大数据·hadoop·分布式·python·spark·django·课程设计
杜子不疼.2 小时前
《Python学习之第三方库:开启无限可能》
开发语言·python·学习
青衫客363 小时前
用 Python 实现一个“小型 ReAct 智能体”:思维链 + 工具调用 + 环境交互
python·大模型·llm·react
AI视觉网奇3 小时前
音频分类模型笔记
人工智能·python·深度学习
Ratten4 小时前
【Python 实战】---- 实现一个可选择、配置操作的批量文件上传工具(四)配置管理界面和逻辑实现
python
Ratten4 小时前
【Python 实战】---- 实现一个可选择、配置操作的批量文件上传工具(五)打包成 exe 应用
python
跟橙姐学代码4 小时前
写 Python 函数别再死抠参数了,这招让代码瞬间灵活
前端·python