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

目录

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()
相关推荐
大写-凌祁2 小时前
零基础入门深度学习:从理论到实战,GitHub+开源资源全指南(2025最新版)
人工智能·深度学习·开源·github
焦耳加热3 小时前
阿德莱德大学Nat. Commun.:盐模板策略实现废弃塑料到单原子催化剂的高值转化,推动环境与能源催化应用
人工智能·算法·机器学习·能源·材料工程
深空数字孪生3 小时前
储能调峰新实践:智慧能源平台如何保障风电消纳与电网稳定?
大数据·人工智能·物联网
wan5555cn3 小时前
多张图片生成视频模型技术深度解析
人工智能·笔记·深度学习·算法·音视频
格林威4 小时前
机器视觉检测的光源基础知识及光源选型
人工智能·深度学习·数码相机·yolo·计算机视觉·视觉检测
今天也要学习吖4 小时前
谷歌nano banana官方Prompt模板发布,解锁六大图像生成风格
人工智能·学习·ai·prompt·nano banana·谷歌ai
Hello123网站4 小时前
glean-企业级AI搜索和知识发现平台
人工智能·产品运营·ai工具
AKAMAI4 小时前
Queue-it 为数十亿用户增强在线体验
人工智能·云原生·云计算
索迪迈科技5 小时前
INDEMIND亮相2025科技创变者大会,以机器人空间智能技术解锁具身智能新边界
人工智能·机器人·扫地机器人·空间智能·陪伴机器人
栒U5 小时前
一文从零部署vLLM+qwen0.5b(mac本地版,不可以实操GPU单元)
人工智能·macos·vllm