Day17_【机器学习—在线数据集 鸢尾花案例】

机器学习建模流程:

  1. 加载数据------在线数据集,鸢尾花数据,150条 ,dm01_loadiris(),dm04_模型评估与预测()

  2. 数据的预处理------数据集分区(训练集和测试集),dm03_traintest_split(),dm04_模型评估与预测()

  3. 特征工程------特征预处理(数据标准化),dm04_模型评估与预测()

  4. 模型训练(机器学习),dm04_模型评估与预测()

  5. 模型预测和评估------dm04_模型评估与预测()

    from sklearn.datasets import load_iris # 在线数据集 150条
    from sklearn.model_selection import train_test_split # 分割训练集和测试集
    from sklearn.preprocessing import StandardScaler # 数据标准化
    from sklearn.neighbors import KNeighborsClassifier # KNN算法 分类对象,因为鸢尾花是分类的场景采用三分法
    from sklearn.metrics import accuracy_score # 模型评估 计算模型准确率

    以下三个库 展示数据可视化,目的:观察数据在模型上的分布情况,是否存在异常值

    import seaborn as sns
    import pandas as pd
    import matplotlib.pyplot as plt

    加载鸢尾花 在线数据集

    def dm01_loadiris():
    # 加载数据
    iris_data = load_iris()
    ## print(iris_data) #此行会打印出以下keys和keys的具体内容,以如下更清晰的方式展示重点数据
    # 数据的键,也就是它的主要组成部分的名称
    print(iris_data.keys())
    # 数据特征名
    print(iris_data.feature_names)
    # 数据前5行 特征值
    print(iris_data.data[:5])
    # 数据标签名
    print(iris_data.target_names)
    # 数据前52行 标签值
    print(iris_data.target[:52])

    2、数据的可视化:定义函数 dm02_show_iris()

    def dm02_show_iris():
    # 1、加载数据
    iris_data = load_iris()
    # 2、把上述的数据封装df对象
    iris_df = pd.DataFrame(iris_data.data, columns=iris_data.feature_names)
    # 3、给df对象新增一个标签列
    iris_df['label'] = iris_data.target
    # print(iris_df)
    # 4、具体做可视化(了解)
    # 参1:数据 iris_df
    # 参2:x轴值 花瓣长度
    # 参3:y轴值 花瓣宽度
    # 参4:hue 颜色(根据鸢尾花的标签的分组,显示不同颜色)
    # 参5:fit_reg=False 不绘制拟合回归线,True 绘制拟合回归线
    sns.lmplot(data=iris_df, x="petal length (cm)", y='petal width (cm)', hue='label', fit_reg=True)
    # 5、设置标题
    plt.title("iris data")
    plt.tight_layout() # 自动调整子图的参数
    plt.show()

    数据集(训练集测试集)划分

    def dm03_traintest_split():
    # 1、加载数据集
    iris_data = load_iris() # 150条 训练集 和测试集
    # 2、划分数据集
    # iris_data.data ->特征 150条
    # iris_data.target ->标签 150条
    # test_size ->表示测试集占比
    # random_state ->随机种子 如果种子一样,每次划分数据集都是一样的。
    x_train, x_test, y_train, y_test = train_test_split(iris_data.data, iris_data.target, test_size=0.2,
    random_state=22)
    # print(f"训练集,x-特征:{len(x_train)}") # 120条 每条4个列(特征)
    # print(f"测试集,x-特征:{len(x_test)}")# 30条 每条4个列(特征)
    # print(f"训练集,y-标签:{len(y_train)}") # 120条 标签
    # print(f"测试集,y-标签:{len(y_test)}") #30条 标签
    print(f"x_train:\n{x_train}")
    print(f"x_test:\n{x_test}")
    print(f"y_train:\n{y_train}")
    print(f"y_test:\n{y_test}")

    def dm04_模型评估与预测():
    # 1、获取数据集
    iris_data = load_iris()

    复制代码
     # 2、数据预处理(数据集划分)
     x_train, x_test, y_train, y_test = train_test_split(iris_data.data, iris_data.target, test_size=0.2,
                                                         random_state=22)
    
     # 3、特征工程之子工程_特征预处理(标准化) 演示!!因为源数据不存在量纲问题
     # 3.1 创建标准化对象
     transfer = StandardScaler()
     # 3.2 对特征列进行标准化  x_train:训练集特征  训练+转换
     x_train = transfer.fit_transform(x_train)
     # 3.3 处理测试集  transform只有转换
     x_test = transfer.transform(x_test)
     # 4、模型训练 -》机器学习
     # 4.1 创建模型对象
     es = KNeighborsClassifier(n_neighbors=5)
     # 4.2模型训练
     es.fit(x_train, y_train)  # 训练集特征   训练集标签
    
     # 5、模型预测   返回值是模型的预测值:y_predict
     y_predict = es.predict(x_test)
    
     # 打印对比
     print(f"(测试集)预测结果为:{y_predict}")  # 30个预测标签
     print(f"(测试集)真实结果为:{y_test}")  # 30个真实标签
    
     # 6.模型评估,两种方式
     # print(f"准确率:{es.score(x_test,y_test)}")
     # 参1:测试集真实标签   参2:预测标签
     print(f"准确率:{accuracy_score(y_test, y_predict)}")

    if name == 'main':
    dm01_loadiris()
    dm02_show_iris()
    dm03_traintest_split()
    dm04_模型评估与预测()

相关推荐
最强小杰6 小时前
DeepSeek V4 Flash + Codex CLI 接入教程:原生 Responses API 适配,从配置到跑通收藏这篇就够了(2026)
java·前端·python·ai
DeepVisionary7 小时前
为拿并网许可,OpenAI在佐治亚新园区同意高峰期断电三成
python·自动化
VIP_CQCRE8 小时前
内容自动化越跑越乱?先补上状态、去重和失败恢复
python·ai·工作流·幂等设计·内容自动化
我喜欢就喜欢8 小时前
RAG 重排序 Rerank 实战:用 bge-reranker 把 Top-K 命中率拉回来
python·大模型·向量检索·rag·rerank
专注仿真8 小时前
卷积神经网络(CNN)算法详解
人工智能·python·算法·代码·大模型训练
isfox8 小时前
Python3 协程:异步编程的核心机制与实战
python
用户298698530148 小时前
Python 将 Markdown 批量转为 HTML:单文件与目录遍历两种实现
python·html·markdown
miofly8 小时前
GitHub 今日推荐|auto-ontology:给 Agent 装上企业数据的语义索引
python·开源·github
青少儿编程课堂9 小时前
蓝桥杯青少组图形化 + 全国青少年信息素养大赛 + 电子学会Scratch考级:校园成语接龙大挑战解析
c++·python·算法·bfs·信息学竞赛