四、分类算法 - 模型选择与调优

目录

1、模型选择与调优

[1.1 交叉验证](#1.1 交叉验证)

[1.2 超参数搜索 - 网格搜索](#1.2 超参数搜索 - 网格搜索)

[1.3 模型选择与调优 API](#1.3 模型选择与调优 API)

[1.4 鸢尾花案例增加K值调优](#1.4 鸢尾花案例增加K值调优)


  1. sklearn转换器和估算器
  2. KNN算法
  3. 模型选择和调优
  4. 朴素贝叶斯算法
  5. 决策树
  6. 随机森林

1、模型选择与调优

1.1 交叉验证

1.2 超参数搜索 - 网格搜索

1.3 模型选择与调优 API

1.4 鸢尾花案例增加K值调优

python 复制代码
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.neighbors import KNeighborsClassifier
from sklearn.preprocessing import StandardScaler

def knn_iris():
    # 用KNN 算法对鸢尾花进行分类
    # 1、获取数据
    iris = load_iris()
    # 2、划分数据集
    x_train,x_test,y_train,y_test = train_test_split(iris.data,iris.target,random_state=6)
    # 3、特征工程 - 标准化
    transfer = StandardScaler()
    x_train = transfer.fit_transform(x_train)
    x_test = transfer.transform(x_test)
    # 4、KNN 算法预估器
    estimator = KNeighborsClassifier(n_neighbors=3)
    estimator.fit(x_train,y_train)
    # 5、模型评估
    # 方法1 :直接比对真实值和预测值
    y_predict = estimator.predict(x_test)
    print("y_predict:\n",y_predict)
    print("直接比对真实值和预测值:\n",y_test == y_predict)
    # 方法2:计算准确率
    score = estimator.score(x_test,y_test)
    print("准确率为:\n",score)
    return None

def knn_iris_gscv():
    # 用KNN 算法对鸢尾花进行分类,添加网格搜索和交叉验证
    # 1、获取数据
    iris = load_iris()

    # 2、划分数据集
    x_train,x_test,y_train,y_test = train_test_split(iris.data,iris.target,random_state=6)

    # 3、特征工程 - 标准化
    transfer = StandardScaler()
    x_train = transfer.fit_transform(x_train)
    x_test = transfer.transform(x_test)

    # 4、KNN 算法预估器
    estimator = KNeighborsClassifier()
    # 加入网格搜索和交叉验证
    # 参数准备
    param_dict = {"n_neighbors":[1,3,5,7,9,11]}
    estimator = GridSearchCV(estimator,param_grid=param_dict,cv=10)
    estimator.fit(x_train,y_train)

    # 5、模型评估
    # 方法1 :直接比对真实值和预测值
    y_predict = estimator.predict(x_test)
    print("y_predict:\n",y_predict)
    print("直接比对真实值和预测值:\n",y_test == y_predict)
    # 方法2:计算准确率
    score = estimator.score(x_test,y_test)
    print("准确率为:\n",score)

    # 最佳参数:best_params_
    print("最佳参数:\n",estimator.best_params_)
    # 最佳结果:best_score_
    print("最佳结果:\n",estimator.best_score_)
    # 最佳估计值:best_estimator_
    print("最佳估计值:\n",estimator.best_estimator_)
    # 交叉验证结果:cv_results_
    print("交叉验证结果:\n",estimator.cv_results_)

    return None

if __name__ == "__main__":
    # 代码1 :用KNN算法对鸢尾花进行分类
    knn_iris()
    # 代码2 :用KNN算法对鸢尾花进行分类,添加网格搜索和交叉验证
    knn_iris_gscv()
相关推荐
aigcapi4 分钟前
[深度观察] RAG 架构重塑流量分发:2025 年 GEO 优化技术路径与头部服务商选型指南
大数据·人工智能·架构
字节跳动开源7 分钟前
Midscene v1.0 发布 - 视觉驱动,UI 自动化体验跃迁
前端·人工智能·客户端
+wacyltd大模型备案算法备案1 小时前
大模型备案怎么做?2025年企业大模型备案全流程与材料清单详解
人工智能·大模型备案·算法备案·大模型上线登记
吾在学习路1 小时前
故事型总结:Swin Transformer 是如何打破 Vision Transformer 壁垒的?
人工智能·深度学习·transformer
sandwu1 小时前
AI自动化测试(一)
人工智能·agent·playwright·ai自动化测试·midscene
问道飞鱼1 小时前
【人工智能】AI Agent 详解:定义、分类与典型案例
人工智能·ai agent
编码小哥1 小时前
OpenCV形态学操作:腐蚀与膨胀原理解析
人工智能·opencv·计算机视觉
lbb 小魔仙1 小时前
AI + 云原生实战:K8s 部署分布式训练集群,效率翻倍
人工智能·云原生·kubernetes
啊巴矲2 小时前
小白从零开始勇闯人工智能:机器学习初级篇(随机森林)
人工智能·机器学习
技术小甜甜2 小时前
[AI Agent] 如何在本地部署 Aider 并接入局域网 Ollama 模型,实现本地智能助手操作系统资源
人工智能·ai·自动化·agent