当前位置: 首页 > news >正文

网站备案核实注册公司在哪核名

网站备案核实,注册公司在哪核名,wordpress 前端登录,宁波网站制作一、前言#xff1a;为何要学交叉验证与网格搜索#xff1f; 大家好#xff01;在机器学习的道路上#xff0c;我们经常面临一个难题#xff1a;模型调参。比如在 KNN 算法中#xff0c;选择多少个邻居#xff08;n_neighbors#xff09;直接影响预测效果。 • 蛮力猜…一、前言为何要学交叉验证与网格搜索 大家好在机器学习的道路上我们经常面临一个难题模型调参。比如在 KNN 算法中选择多少个邻居n_neighbors直接影响预测效果。 • 蛮力猜测就像在厨房随便“加盐加辣椒”不仅费时费力还可能把菜搞砸。 • 交叉验证 网格搜索更像是让你请来一位“大厨”提前试好所有配方帮你挑选出最完美的“调料搭配”。 交叉验证与网格搜索的组合能让你在众多超参数组合中自动挑选出最佳方案从而让模型预测达到“哇塞这也太准了吧”的境界。 二、概念扫盲交叉验证 网格搜索 1. 交叉验证Cross-Validation 核心思路 • 分组品尝将整个数据集平均分成若干份比如分成 5 份即“5折交叉验证”。 • 轮流担任评委每次选取其中一份作为“验证集”就像让这部分数据来“评委打分”剩下的作为“训练集”来训练模型。 • 集体评定重复多次每一份都轮流担任验证集然后把所有“评分”取平均作为模型在数据集上的最终表现。 好处 • 每个样本都有机会既当“选手”又当“评委”使得评估结果更稳定、可靠。 • 避免单一划分带来的偶然性确保你调出来的参数在不同数据切分下都表现良好。 2. 网格搜索Grid Search 核心思路 • 列出所有可能将你想尝试的超参数组合“罗列成一个表格网格”。 • 自动试菜每种组合都进行一次完整的模型训练和评估记录下它们的表现。 • 选出最佳配方最后找出在交叉验证中表现最好的超参数组合。 好处 • 自动化、系统化地寻找最佳参数组合避免你手动“胡乱猜测”。 • 和交叉验证结合后每个参数组合都经过了多次评估结果更稳健。 3. 网格搜索 交叉验证 这两者结合就像“炼丹”高手的秘诀 • 交叉验证解决了“数据切分”的问题让评估更准确 • 网格搜索解决了“超参数组合”问题帮你遍历所有可能性。 合体后你就能轻松找到最优超参数让模型发挥出最佳性能 三、案例一鸢尾花数据集 KNN 交叉验证网格搜索 3.1 数据集介绍 • 数据来源scikit-learn 内置的 load_iris • 特征萼片长度、萼片宽度、花瓣长度、花瓣宽度 • 目标根据花的外部特征预测其所属的鸢尾花种类 3.2 代码示例 下面代码展示如何在鸢尾花数据集上使用 KNN 算法并通过 GridSearchCV交叉验证网格搜索自动调优 n_neighbors 参数 import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split, GridSearchCV from sklearn.preprocessing import StandardScaler from sklearn.neighbors import KNeighborsClassifier from sklearn.metrics import accuracy_scoredef iris_knn_cv():使用KNN算法在鸢尾花数据集上进行分类并通过网格搜索交叉验证寻找最优超参数。# 1. 加载数据iris load_iris()X iris.data # 特征矩阵包含四个特征y iris.target # 标签分别代表三种鸢尾花# 2. 划分训练集和测试集# test_size0.2 表示 20% 的数据用于测试保证测试结果具有代表性# random_state22 固定随机数种子确保每次运行划分一致X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2, random_state22)# 3. 数据标准化# 标准化可使各特征均值为0、方差为1消除量纲影响对于基于距离的KNN非常重要scaler StandardScaler()X_train_scaled scaler.fit_transform(X_train)X_test_scaled scaler.transform(X_test)# 4. 构建KNN模型及参数调优knn KNeighborsClassifier() # 初始化KNN模型# 4.1 设置网格搜索参数范围尝试不同的邻居数param_grid {n_neighbors: [1, 3, 5, 7, 9]}# 4.2 进行网格搜索 交叉验证5折交叉验证grid_search GridSearchCV(estimatorknn, # 待调参的模型param_gridparam_grid, # 超参数候选列表cv5, # 5折交叉验证将训练集分为5个子集每次用1个子集验证其余4个训练scoringaccuracy, # 以准确率作为评估指标n_jobs-1 # 使用所有CPU核心并行计算)grid_search.fit(X_train_scaled, y_train) # 自动遍历各参数组合并评估# 4.3 输出网格搜索结果print(最佳交叉验证分数, grid_search.best_score_)print(最优超参数组合, grid_search.best_params_)print(最优模型, grid_search.best_estimator_)# 5. 模型评估用测试集评估最优模型的泛化能力best_model grid_search.best_estimator_y_pred best_model.predict(X_test_scaled)acc accuracy_score(y_test, y_pred)print(在测试集上的准确率{:.2f}%.format(acc * 100))# 6. 可视化选做可进一步绘制混淆矩阵或学习曲线# 直接调用函数进行测试 if __name__ __main__:iris_knn_cv() 输出  3.3 结果解读 • 最佳交叉验证分数表示在5折交叉验证过程中所有参数组合中平均准确率最高的值。 • 最优超参数组合显示在候选参数 [1, 3, 5, 7, 9] 中哪个 n_neighbors 的效果最好。 • 测试集准确率验证模型在未见数据上的表现反映其泛化能力。 通过这个案例你可以看到交叉验证网格搜索如何自动帮你“挑菜”选料让 KNN 模型在鸢尾花分类任务上达到最佳表现。 四、案例二手写数字数据集 KNN 交叉验证网格搜索 4.1 数据集介绍 • 数据来源scikit-learn 内置的 load_digits • 特征每张 8×8 像素的手写数字图像被拉伸成64维特征向量 • 目标识别图片中数字所属类别09 4.2 代码示例 下面代码展示如何在手写数字数据集上使用 KNN 算法并通过交叉验证网格搜索调优参数 import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.datasets import load_digits # 导入手写数字数据集内置于 scikit-learn from sklearn.model_selection import train_test_split, GridSearchCV from sklearn.preprocessing import StandardScaler # 导入数据标准化工具 from sklearn.neighbors import KNeighborsClassifier # 导入KNN分类器 from sklearn.metrics import accuracy_score, confusion_matrix import seaborn as sns # 导入 seaborn用于绘制更美观的图表def digits_knn_cv():使用KNN算法在手写数字数据集上进行分类并通过网格搜索交叉验证寻找最优超参数。# 1. 加载数据digits load_digits() # 从scikit-learn加载内置手写数字数据集X digits.data # 特征数据形状为 (1797, 64)每一行对应一张图片的64个像素值y digits.target # 目标标签共10个类别数字 0 到 9# 2. 数据可视化展示前5张图片及其标签# 创建一个1行5列的子图区域图像尺寸为10x2英寸fig, axes plt.subplots(1, 5, figsize(10, 2))for i in range(5):# 显示第 i 张图片使用灰度图cmapgrayaxes[i].imshow(digits.images[i], cmapgray)# 设置每个子图的标题显示该图片对应的标签axes[i].set_title(Label: {}.format(digits.target[i]))# 关闭坐标轴显示避免坐标信息干扰视觉效果axes[i].axis(off)plt.suptitle(手写数字数据集示例) # 为整个图表添加一个总标题plt.show() # 显示图表# 3. 数据划分 标准化# 将数据划分为训练集和测试集其中测试集占20%random_state保证每次划分一致X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.2, random_state42)# 初始化标准化工具将特征数据转换为均值为0、方差为1的标准正态分布scaler StandardScaler()# 仅在训练集上拟合标准化参数并转换训练集数据X_train_scaled scaler.fit_transform(X_train)# 使用相同的转换参数转换测试集数据避免数据泄露X_test_scaled scaler.transform(X_test)# 4. 构建KNN模型及网格搜索调参knn KNeighborsClassifier() # 初始化KNN分类器暂未指定 n_neighbors 参数# 定义一个字典列出希望尝试的超参数组合# 这里我们测试不同邻居数的效果[1, 3, 5, 7, 9]param_grid {n_neighbors: [1, 3, 5, 7, 9]}# 初始化网格搜索对象结合交叉验证grid_search GridSearchCV(estimatorknn, # 需要调参的KNN模型param_gridparam_grid, # 超参数候选组合cv5, # 5折交叉验证将训练数据分成5份每次用4份训练1份验证scoringaccuracy, # 使用准确率作为模型评估指标n_jobs-1 # 并行计算使用所有可用的CPU核心加速计算)# 在标准化后的训练集上进行网格搜索自动尝试所有参数组合并进行交叉验证grid_search.fit(X_train_scaled, y_train)# 5. 输出网格搜索调参结果# 打印在交叉验证中获得的最佳平均准确率print(手写数字 - 最佳交叉验证分数, grid_search.best_score_)# 打印获得最佳结果时所使用的超参数组合例如 {n_neighbors: 3}print(手写数字 - 最优超参数组合, grid_search.best_params_)# 打印最佳模型对象该模型已使用最优参数重新训练best_model grid_search.best_estimator_# 6. 模型评估用测试集评估模型效果# 使用最优模型对测试集进行预测y_pred best_model.predict(X_test_scaled)# 计算测试集上的准确率acc accuracy_score(y_test, y_pred)print(手写数字 - 测试集准确率{:.2f}%.format(acc * 100))# 7. 可视化混淆矩阵直观展示各数字分类效果# 混淆矩阵能够显示真实标签与预测标签之间的对应关系cm confusion_matrix(y_test, y_pred)plt.figure(figsize(6, 5))# 使用 seaborn 的 heatmap 绘制混淆矩阵annotTrue 表示在每个单元格中显示数字sns.heatmap(cm, annotTrue, cmapBlues, fmtd)plt.title(手写数字 - 混淆矩阵)plt.xlabel(预测值)plt.ylabel(真实值)plt.show()# 直接调用函数进行测试 if __name__ __main__:digits_knn_cv() 输出 4.3 结果解读 • 最优 n_neighbors通过交叉验证我们找到了在候选参数中使模型表现最佳的邻居数量。 • 测试集准确率在手写数字识别任务上通常准确率能达到90%以上证明 KNN 在小数据集上也能表现不错。 • 混淆矩阵直观展示哪些数字容易混淆例如数字“3”和“5”便于进一步分析和改进。 混淆矩阵图的含义与作用 1. 横纵坐标的含义 • 行纵轴代表真实标签真实的数字 0~9。 • 列横轴代表模型预测的标签预测的数字 0~9。 2. 数值和颜色深浅 • 单元格 (i, j) 内的数值表示真实类别为 i 的样本中有多少被预测为 j。 • 越靠近对角线i j代表预测正确的数量 • 离对角线越远说明模型将真实类别 i 的样本错误地预测成类别 j。 • 热力图中颜色越深表示数量越多浅色则表示数量少。 3. 作用 • 评估模型分类效果如果对角线上的数值高且远离对角线的数值低说明模型分类准确度高反之说明某些类别容易被混淆。 • 发现易混淆的类别通过观察非对角线位置是否有较大的数值可以知道哪些数字最容易被误判。例如模型可能经常把“3”预测成“5”这能提示我们在后续改进中加强这两个类别的区分。 • 比单纯的准确率更全面准确率只能告诉你模型整体正确率而混淆矩阵能告诉你哪类错误最多便于更有针对性地提升模型性能。 五、总结 彩蛋 1. 交叉验证的价值 • 有效避免过拟合通过多次分组验证使得模型评估更稳健。 2. 网格搜索的强大 • 自动遍历所有超参数组合省去手动调参的烦恼快速锁定“最佳拍档”。 3. KNN 的局限 • 虽然简单易用但在大规模、高维数据中计算量较大且对异常值较敏感。 4. 后续进阶 • 可以尝试随机搜索RandomizedSearchCV或贝叶斯优化甚至转向更复杂的模型如 CNN 进行数字识别。 结语 如果你觉得本篇文章对你有所帮助请记得点赞、收藏、转发和评论哦你的支持是我继续创作的最大动力。让我们一起在机器学习的道路上不断探索、不断进步早日成为调参界的“神仙” 祝学习愉快炼丹顺利~
http://www.yingshimen.cn/news/21579/

相关文章:

  • 网站ico如何修改做别墅花园绿化的网站
  • 建设工程评标专家在哪个网站登录网站建设要多久
  • 网站的建设费用分为企业官网招聘
  • 深圳罗湖做网站的公司哪家好免备案域名
  • 哈尔滨市建筑企业管理站centos wordpress 建站教程
  • 建网站服务器是什么东西网站推广的英文content
  • 做围棋死活题的网站外贸公司网站建站
  • 长沙网站建设服务商常州企业网站建站模板
  • 金华高端网站建设企业信息系统类型
  • 泰安网站建设公司带十四冶建设集团技工学校网站
  • 好用的免费网站建设织梦cms怎么更改网站的路径
  • 遵义网站建设1w1hwordpress首页文章列表丰富多样
  • 网站哪里可以做亿牛网
  • 包装建设网站易语言做网站登录器
  • 网站内部优化怎么做上传商品的网站
  • 展馆门户网站建设湖北建设厅官方网站
  • 工程建设资料员报名网站设计室内装修的软件
  • 企业宣传网站建设需求说明书的模板wordpress减少请求次数
  • 一般做网站是在什么网站找素材怎么弄一个电商平台
  • 万州网站建设公司重庆公司名称网上核名
  • 做爰全过程网站免费的视频北京注册公司地址新规定
  • 织梦做的网站后台简单网页代码html作业
  • 有没有做海报的网站推荐益阳建设局网站
  • 如何做公司网站优化企业网站管理系统的设计与实现
  • 网站托管共享服务器费用一年多少钱影楼网站源码
  • 南宁网站建设q.479185700強兼职网站建设收费
  • 网站建设标书模板下载许昌网站建设哪家最好
  • 吴家山网站建设公司吉林省建设厅
  • wordpress网站标签logo湖南城市建设技术学院官方网站
  • 南通营销网站建设roseonly企业网站优化