使用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}')
相关推荐
luckys.one1 小时前
第9篇:Freqtrade量化交易之config.json 基础入门与初始化
javascript·数据库·python·mysql·算法·json·区块链
大翻哥哥2 小时前
Python 2025:量化金融与智能交易的新纪元
开发语言·python·金融
zhousenshan4 小时前
Python爬虫常用框架
开发语言·爬虫·python
IMER SIMPLE4 小时前
人工智能-python-深度学习-经典神经网络AlexNet
人工智能·python·深度学习
CodeCraft Studio4 小时前
国产化Word处理组件Spire.DOC教程:使用 Python 将 Markdown 转换为 HTML 的详细教程
python·html·word·markdown·国产化·spire.doc·文档格式转换
专注API从业者5 小时前
Python/Java 代码示例:手把手教程调用 1688 API 获取商品详情实时数据
java·linux·数据库·python
java1234_小锋5 小时前
[免费]基于Python的协同过滤电影推荐系统(Django+Vue+sqlite+爬虫)【论文+源码+SQL脚本】
python·django·电影推荐系统·协同过滤
看海天一色听风起雨落6 小时前
Python学习之装饰器
开发语言·python·学习
XiaoMu_0016 小时前
基于Python+Streamlit的旅游数据分析与预测系统:从数据可视化到机器学习预测的完整实现
python·信息可视化·旅游
THMAIL6 小时前
深度学习从入门到精通 - 生成对抗网络(GAN)实战:创造逼真图像的魔法艺术
人工智能·python·深度学习·神经网络·机器学习·生成对抗网络·cnn