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

目录

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()
相关推荐
AI医影跨模态组学4 小时前
ESMO Open 中国医学科学院肿瘤医院:整合影像组学、病理组学和活检适应性免疫评分预测局部晚期直肠癌远处转移
人工智能·深度学习·机器学习·论文·医学·医学影像
Ztopcloud极拓云视角4 小时前
GPT-6 & DeepSeek V4 双雄临近:企业多模型路由网关实战指南
人工智能·gpt·deepseek·gpt-6
hughnz4 小时前
AI和自动化让油田钻工慢慢消失
大数据·人工智能
L.fountain4 小时前
图像自回归生成(Auto-regressive image generation)实战学习(六)
学习·数据挖掘·回归
jay神4 小时前
大米杂质检测数据集(YOLO格式)
人工智能·深度学习·yolo·目标检测·毕业设计
GIS数据转换器4 小时前
延凡低成本低空无人机AI巡检方案
大数据·人工智能·信息可视化·数据挖掘·无人机
流云枫4 小时前
把小说变成短视频/漫画——全流程技术复盘
人工智能
飞Link4 小时前
【AI大模型实战】万字长文肝透大语言模型(LLM):从底层原理解析到企业级Python项目落地
开发语言·人工智能·python·语言模型·自然语言处理
TechMasterPlus4 小时前
OpenClaw 源码深度解析:下一代 AI Agent 框架的架构设计与实现原理
人工智能
不完备智能4 小时前
🦌 DeerFlow 2.0 深度解析:字节跳动开源的"超级 Agent harness"架构揭秘
人工智能