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

广州旅游网站建设东莞网站建设在哪里

广州旅游网站建设,东莞网站建设在哪里,全国监理工程师查询网,三网合一网站建设是指什么KNN算法-模型选择与调优 文章目录 KNN算法-模型选择与调优1. 交叉验证2. 超参数搜索-网格搜索#xff08;Grid Search#xff09;3. 模型选择与调优API4. 鸢尾花种类预测-代码和输出结果5. 计算距离 问题背景#xff1a;KNN算法的K值不好确定 1. 交叉验证 交叉验证#x…KNN算法-模型选择与调优 文章目录 KNN算法-模型选择与调优1. 交叉验证2. 超参数搜索-网格搜索Grid Search3. 模型选择与调优API4. 鸢尾花种类预测-代码和输出结果5. 计算距离 问题背景KNN算法的K值不好确定 1. 交叉验证 交叉验证将拿到的训练数据分为训练集和验证集。以下表为例将数据分成4份其中一份作为验证集然后经过4次组的测试每次都更换不同的验证集。即得到4组模型的结果取平均值作为最终的结果。这种又称作为4折交叉认证。 第一块第二块第三块第四块准确率验证集训练集训练集训练集80%训练集验证集训练集训练集78%训练集训练集验证集训练集75%训练集训练集训练集验证集82% 我们之前知道数据分为训练集和测试集但是为了从训练得到的模型结果更加准确做出以下处理 训练集训练集验证集测试集测试集 2. 超参数搜索-网格搜索Grid Search 通常情况下有很多参数是要手动去指定的如KNN算法中的K值这种叫超参数。但是手动过程繁杂我们可能会定义一个列表里面有一堆K的值来遍历选择相当于“暴力破解”。而网格搜索会采用交叉认证来进行评估在你给定的一定范围内的K值中选出最优参数组合建立模型。 3. 模型选择与调优API sklearn.model_selection.GridSearchCV(estimator,param_gridNone,cvNone) 对估计器的指定参数值进行详尽搜索estimator估计器对象param_grid估计器参数dict{“n_neighbors:[1,3,5]}cv指定几折交叉验证fit()输入训练数据score()准确率结果分析best_params_最佳参数best_score_最佳结果best_estimator_最佳估计器cv_results_交叉验证结果 4. 鸢尾花种类预测-代码和输出结果 from sklearn.neighbors import KNeighborsClassifier from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.model_selection import GridSearchCV# K—近邻算法 def KNN_demo():sklearn.neighbors.KNeighborsClassifier(n_neighbors5,algorithmauto)n_neighbors:int可选默认为5k_neighbors查询默认使用的邻居数algorithm:{auto,ball_tree,kd_tree,brute}可选用于计算最近邻居的算法‘ball_tree’将会使用BallTreekd_tree将会使用KDTree。auto将尝试根据传递给fit方法的值来决定最合适的算法。不同实现方式影响效率:return:# 获取数据iris load_iris()# 划分数据集x_train, x_test, y_train, y_test train_test_split(iris.data, iris.target, random_state 6)# 特征工程 标准化transfer StandardScaler()x_train transfer.fit_transform(x_train)x_test transfer.transform(x_test)# KNN算法预估器estimator KNeighborsClassifier(n_neighbors 3)estimator.fit(x_train, y_train)# 模型评估# 方法一y_predict estimator.predict(x_test)print(y_predict:\n, y_predict)print(直接比对真实值和预测值\n, y_test y_predict)# 方法二score estimator.score(x_test, y_test)print(准确率为\n, score)return None# KNN添加网格搜索和交叉认证 def KNN_gscv_demo():# 获取数据iris load_iris()# 划分数据集x_train, x_test, y_train, y_test train_test_split(iris.data, iris.target, random_state6)# 特征工程 标准化transfer StandardScaler()x_train transfer.fit_transform(x_train)x_test transfer.transform(x_test)# 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)# 模型评估# 方法一y_predict estimator.predict(x_test)print(y_predict:\n, y_predict)print(直接比对真实值和预测值\n, y_test y_predict)# 方法二score estimator.score(x_test, y_test)print(准确率为\n, score)# 最佳print(最佳参数为\n, estimator.best_params_)print(最佳结果\n, estimator.best_score_)print(最佳估计器\n, estimator.best_estimator_)print(交叉验证结果\n, estimator.cv_results_)# 交叉验证结果为训练集划分训练集和验证集之后的不是整体的和测试集无关return Noneif __name__ __main__:# KNN_demo() 没有添加网格搜索和交叉认证KNN_gscv_demo()passy_predict:[0 2 0 0 2 1 2 0 2 1 2 1 2 2 1 1 2 1 1 0 0 2 0 0 1 1 1 2 0 1 0 1 0 0 1 2 12] 直接比对真实值和预测值[ True True True True True True True True True True True TrueTrue True True False True True True True True True True TrueTrue True True True True True True True True True False TrueTrue True] 准确率为0.9473684210526315 最佳参数为{n_neighbors: 11} 最佳结果0.9734848484848484 最佳估计器KNeighborsClassifier(n_neighbors11) 交叉验证结果{mean_fit_time: array([0.00010171, 0. , 0.00030091, 0. , 0. ,0.00020049]), std_fit_time: array([0.00030513, 0. , 0.00045964, 0. , 0. ,0.00040097]), mean_score_time: array([0.00110393, 0.00069332, 0.00051594, 0.00090301, 0.00085185,0.0005013 ]), std_score_time: array([0.00070476, 0.00039479, 0.00065858, 0.00030101, 0.00032043,0.0005013 ]), param_n_neighbors: masked_array(data[1, 3, 5, 7, 9, 11],mask[False, False, False, False, False, False],fill_value?,dtypeobject), params: [{n_neighbors: 1}, {n_neighbors: 3}, {n_neighbors: 5}, {n_neighbors: 7}, {n_neighbors: 9}, {n_neighbors: 11}], split0_test_score: array([1., 1., 1., 1., 1., 1.]), split1_test_score: array([0.91666667, 0.91666667, 1. , 0.91666667, 0.91666667,0.91666667]), split2_test_score: array([1., 1., 1., 1., 1., 1.]), split3_test_score: array([1. , 1. , 1. , 1. , 0.90909091,1. ]), split4_test_score: array([1., 1., 1., 1., 1., 1.]), split5_test_score: array([0.90909091, 0.90909091, 1. , 1. , 1. ,1. ]), split6_test_score: array([1., 1., 1., 1., 1., 1.]), split7_test_score: array([0.90909091, 0.90909091, 0.90909091, 0.90909091, 1. ,1. ]), split8_test_score: array([1., 1., 1., 1., 1., 1.]), split9_test_score: array([0.90909091, 0.81818182, 0.81818182, 0.81818182, 0.81818182,0.81818182]), mean_test_score: array([0.96439394, 0.95530303, 0.97272727, 0.96439394, 0.96439394,0.97348485]), std_test_score: array([0.04365767, 0.0604591 , 0.05821022, 0.05965639, 0.05965639,0.05742104]), rank_test_score: array([5, 6, 2, 3, 3, 1])} 5. 计算距离 K最近邻KNN是一种有监督的机器学习算法它根据其K个最近邻居的大多数类别来对数据点进行分类。在使用KNN时需要确定一个距离度量来衡量数据点之间的相似性。常用的KNN距离度量包括欧氏距离、曼哈顿距离和闵可夫斯基距离。 欧氏距离 欧氏距离是KNN中最常用的距离度量。 它是欧几里得空间中两个点之间的直线距离 在二维空间中计算两个点x1y1和x2y2之间的欧氏距离的公式如下 ( x 1 − x 2 ) 2 ( y 1 − y 2 ) 2 \sqrt{(x1 - x2)^2 (y1 - y2)^2} (x1−x2)2(y1−y2)2 ​ 在n维空间中公式扩展为 ∑ i 1 n ( x i − y i ) 2 \sqrt{\sum_{i1}^{n}(x_i - y_i)^2} i1∑n​(xi​−yi​)2 ​ 这种距离度量对特征的尺度敏感因此在使用时重要的是标准化或归一化特征。 曼哈顿距离 它以每个维度上的坐标绝对差的总和来衡量两个点之间的距离。 在二维空间中计算两个点x1y1和x2y2之间的曼哈顿距离的公式如下 ∣ x 1 − x 2 ∣ ∣ y 1 − y 2 ∣ |x1 - x2| |y1 - y2| ∣x1−x2∣∣y1−y2∣ 在n维空间中公式扩展为 ∑ i 1 n ∣ x i − y i ∣ \sum_{i1}^{n}|x_i - y_i| i1∑n​∣xi​−yi​∣ 曼哈顿距离对异常值不太敏感因此在数据可能不服从正态分布的情况下它是更好的选择。 闵可夫斯基距离 闵可夫斯基距离是欧氏距离和曼哈顿距离的通用化。它包括一个参数“p”可以调整以将公式转换为欧氏或曼哈顿距离。当p2时它变为欧氏距离当p1时它变为曼哈顿距离。两点xy之间的闵可夫斯基距离的公式如下 ( ∑ i 1 n ∣ x i − y i ∣ p ) 1 / p \left(\sum_{i1}^{n}|x_i - y_i|^p\right)^{1/p} (i1∑n​∣xi​−yi​∣p)1/p 默认情况下KNN使用欧氏距离作为距离度量。如果使用不同的距离度量例如曼哈顿或闵可夫斯基距离可以在KNeighborsClassifier构造函数中使用“metric”参数进行指定。例如 estimator KNeighborsClassifier(metricmanhattan)
http://www.dnsts.com.cn/news/274632.html

相关文章:

  • 北京昌平网站建设网站如何实现微信登录界面
  • 安徽柱石建设有限公司网站个人网页模板html免费
  • 可爱风格网站wordpress 附件下载统计
  • 腾讯云服务器网站域名备案餐饮营销型网站案例
  • 搜索引擎网站的结构小程序推广平台
  • 公司网站建设一定要求原图吗龙岗企业网站改版公司
  • 建站找哪个公司佛山网站建设的公司
  • 改行做网站做图素材的网站有哪些
  • 国内网站推广科技成果鉴定机构
  • 电子加工东莞网站建设小清新博客网站
  • 宁波网站建设网站排名优化广州品牌营销服务
  • 网站建设怎么分好坏wordpress页脚链接
  • 邢台太行中学怎么样网站关键词排名优化技巧
  • 17网站一起做网店appwordpress同步微信素材
  • 网站用橙色wordpress类别生成标签
  • 如何建一个个人的网站免费看片网站
  • php 创建网站开发做任务的网站有那些
  • 如何构思公司网站网站 关键词库
  • 网络公司做的网站根目录在哪北京公司注销流程
  • 网站访问者qq学院网站建设计划
  • 有网站源码如何搭建自己的网站电商网站的开发形式
  • 洛阳市河阳建设工程有限公司网站赣州seo培训
  • 网络彩票网站建设多少钱企业所得税法
  • 环保公司网站建设内容一个完整的企业策划案范文
  • 青海省建设网站多少钱重庆网站建设公司模板
  • 购物商城网站建设多少钱外贸网站定制建站
  • 淄博市沂源县城乡建设局网站大连网站的优化
  • 聊城做企业网站wordpress 自定义边栏
  • 加气站类型的网站建设江阴早晨网站建设
  • 建站网站破解版遵义今天查出新冠