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

响应式环保网站上海seo培训

响应式环保网站,上海seo培训,软装设计培训,莞城做网站公司分类准确度 一、摘要二、超参数的概念三、调参的方法四、实验搜索超参数五、扩展搜索范围六、考虑距离权重的kNN算法七、距离的计算方法及代码实现八、明可夫斯基距离的应用九、网格搜索超参数 一、摘要 本博文讲解了机器学习中的超参数问题,以K近邻算法为例&#…

分类准确度

  • 一、摘要
  • 二、超参数的概念
  • 三、调参的方法
  • 四、实验搜索超参数
  • 五、扩展搜索范围
  • 六、考虑距离权重的kNN算法
  • 七、距离的计算方法及代码实现
  • 八、明可夫斯基距离的应用
  • 九、网格搜索超参数

一、摘要

本博文讲解了机器学习中的超参数问题,以K近邻算法为例,介绍了超参数的概念及其重要性。讲解了如何通过实验搜索确定最佳超参数值,如k值的选择,并介绍了距离权重的考虑和明可夫斯基距离的计算方法。同时,探讨了如何通过网格搜索策略来寻找最优的超参数组合。最后,强调了机器学习工程师在进行调参时需要考虑领域知识经验数值的重要性。

二、超参数的概念

  1. 超参数是在运行机器学习算法之前需要指定的参数
  2. kNN算法中的k是一个典型的超参数
  3. 超参数模型参数区别在于,超参数在算法运行前决定,而模型参数算法过程中学习。

三、调参的方法

  1. 调参的目标是找到最好的超参数。
  2. 领域知识和经验数值是寻找超参数的重要途径。
  3. 对于具体问题,最好的超参数可能不同于经验数值,需要通过实验搜索确定。

四、实验搜索超参数

  1. 通过循环测试不同k值,找到最佳的k值。
  2. 初始化最佳准确率和最佳k值,循环遍历k的取值范围。
  3. 对每个k值,创建kNN分类器并计算准确率,更新最佳准确率和最佳k值。

五、扩展搜索范围

  1. 如果找到的最佳k值在搜索范围的边界上,建议扩展搜索范围以寻找更好的值。

六、考虑距离权重的kNN算法

  1. kNN算法可以考虑距离的权重,通常使用距离的倒数作为权重。
  2. 距离越近,权重越大。
  3. 考虑距离权重可以更好地解决平票问题
  4. 权重weight的选择:
    • kNN分类器中有一个weight参数,默认值为uniform,表示不考虑距离权重
    • 将位次参数设置为distance时,会考虑距离权重,可使用明可夫斯基距离。
    • 通过实验搜索找到最佳的weight参数。

七、距离的计算方法及代码实现

  1. 距离的计算方法包括欧拉距离曼哈顿距离
  2. 欧拉距离是每个维度上差值的平方和的平方根。
    在这里插入图片描述
  3. 曼哈顿距离是每个维度上差值的绝对值的和。
    在这里插入图片描述
  4. 明可夫斯基距离是每个维度上差值的绝对值的p次方和的p次方根。
    在这里插入图片描述
  5. 三者的关系
    p=1时,明可夫斯基距离为曼哈顿距离;p=2时,为欧拉距离。
    在这里插入图片描述
  6. 通过寻找kNN超参数,利用手写数字数据集作为训练集和测试集
    1. 准备手写数字数据集,并调用scikit-learn中的kNN算法在指定k值的得分或表现

      import numpy as np
      from sklearn import datasets# 准备数据集
      digits = datasets.load_digits()
      X = digits.data
      y = digits.target# 将数据集拆分为训练集和测试集
      from sklearn.model_selection import train_test_split
      X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.2,random_state=666)# 指定sklearn中kNN中的k值为3
      from sklearn.neighbors import KNeighborsClassifier
      knn_clf = KNeighborsClassifier(n_neighbors=3)
      knn_clf.fit(X_train,y_train)
      knn_clf.score(X_test,y_test)
      

      在Jupyter中执行过程及结果如下:
      在这里插入图片描述

    2. 寻找最佳的k的超参数值

      from sklearn.model_selection import train_test_split
      X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.2,random_state=666)best_score = 0.0 # 设置默认准确度
      best_k = -1 # 设置默认值
      for k in range(1,11):knn_clf = KNeighborsClassifier(n_neighbors = k)knn_clf.fit(X_train,y_train)score= knn_clf.score(X_test,y_test) # 调用score函数得出knn算法准确度# 判断当前的score是否大于当前的best_score,如果是,则重新赋值if score > best_score:best_k = kbest_score = score
      print("best_k = ",best_k)
      print("best_score = ",best_score)
      

      在Jupyter中执行过程及结果如下:
      在这里插入图片描述

    3. 考虑距离权重的kNN算法调用得到最佳超参数

      # 当单纯使用KNN距离远近来作为分类的依据时,会存在离得近的点总数少于离得稍微远的点的总数,到时分类错误。可使用权重参数,通过选择一个合理的method方法来解决。
      # 当投票时出现平票时,需要考虑使用距离的权重来解决;
      from sklearn.model_selection import train_test_split
      X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.2,random_state=666)best_method = None # kNN的一个超参数
      best_score = 0.0 # 设置默认准确度
      best_k = -1 # 设置默认值,为kNN默认的超参数
      for method in ["uniform","distance"]:for k in range(1,11):knn_clf = KNeighborsClassifier(n_neighbors = k,weights=method) # weights 就是权重knn_clf.fit(X_train,y_train)score= knn_clf.score(X_test,y_test) # 调用score函数得出knn算法准确度# 判断当前的score是否大于当前的best_score,如果是,则重新赋值if score > best_score:best_k = kbest_score = scorebest_method = methodprint("best_k = ",best_k)
      print("best_score = ",best_score)
      print("best_method = ",best_method)
      

      在jupyter中执行过程及结果如下:
      在这里插入图片描述

    4. 考虑使用明可夫斯基距离来搜索kNN最佳超参数

      %%timefrom sklearn.model_selection import train_test_split
      X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.2,random_state=666)best_p = -1  # kNN的一个超参数
      best_score = 0.0 # 设置默认准确度
      best_k = -1 # 设置默认值,为kNN默认的超参数
      for k in range(1,11):for p in range(1,6):knn_clf = KNeighborsClassifier(n_neighbors = k,weights="distance",p=p) # 使用明可夫斯基距离时,weights必须是distanceknn_clf.fit(X_train,y_train)score= knn_clf.score(X_test,y_test) # 调用score函数得出knn算法准确度# 判断当前的score是否大于当前的best_score,如果是,则重新赋值if score > best_score:best_k = kbest_score = scorebest_p = pprint("best_k = ",best_k)
      print("best_score = ",best_score)
      print("best_p = ",best_p)
      

      在jupyter中执行的过程和结果如下所示:
      在这里插入图片描述

八、明可夫斯基距离的应用

  1. 明可夫斯基距离可以表示多种距离计算方法。
  2. 通过搜索不同的p值,找到最适合当前问题的距离计算方法。

九、网格搜索超参数

  1. 网格搜索是一种系统搜索超参数的方法。
  2. 通过遍历所有可能的超参数组合,找到最佳组合。
  3. 代码实现:
    # 准备测试数据集
    import numpy as np
    from sklearn import datasets
    digits = datasets.load_digits()
    X = digits.data
    y = digits.target
    from sklearn.model_selection import train_test_split
    X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.2,random_state=666)from sklearn.neighbors import KNeighborsClassifierknn_clf = KNeighborsClassifier(n_neighbors=3)# 定义网格参数
    param_grid = [{'weights': ['uniform'],'n_neighbors': [ i for i in range(1,11)]},{'weights': ['distance'],'n_neighbors': [i for i in range(1,11)],'p' : [i for i in range(1,6)]}
    ]
    # 引入GridSearchCV 网格搜索
    from sklearn.model_selection import GridSearchCV
    grid_search = GridSearchCV(knn_clf,param_grid)
    grid_search = GridSearchCV(knn_clf,param_grid,n_jobs=-1,verbose=2)
    grid_search.fit(X_train,y_train)
    # 查看相关参数
    grid_search.best_estimator_
    grid_search.best_score_
    grid_search.best_params_
    
    执行结果如下:
    fit函数执行效果:
    在这里插入图片描述
    在这里插入图片描述
    best_estimator_结果:
    在这里插入图片描述
    best_score_ 结果:
    在这里插入图片描述
    best_params_ 超参数的结果:
    在这里插入图片描述
http://www.qdjiajiao.com/news/12804.html

相关文章:

  • 论坛网站建设流程厦门人才网唯一官方网站
  • 深圳大型网站建设公司附近的成人电脑培训班
  • 怎么建设个网站百度下载免费
  • 学做网站哪里学服务器域名怎么注册
  • 百度用户服务中心人工24小时电话做seo排名好的公司
  • 如何在外管局网站上做a合同腾讯企业qq官网
  • 如何创建网站的第一步seo搜索引擎优化主要做什么
  • 关于人大网站建设公司品牌营销策划
  • 做淘宝的网站有哪些内容吗seo优化主要工作内容
  • 做网站报价明细表家庭优化大师
  • 广东网站建设服务供应商百度竞价推广的技巧
  • 互联网公司怎么找网站建设客户江阴企业网站制作
  • 文化传播集团网站建设2345网址导航下载桌面
  • 有没有哪个网站怎么做动漫新闻的刷推广链接
  • wordpress钉钉登录免费培训seo网站
  • 做推送实用网站今天重大新闻头条
  • 58网站自己做百度今日数据统计
  • 做外贸b2b网站上海互联网管理系统推广公司
  • wordpress词 条主题免费关键词优化工具
  • 东莞一站式网站推广运营百度seo排名在线点击器
  • 国家工程建设标准化协会网站百度招商客服电话
  • 搭建网站需要做什么最新热搜新闻
  • 怎么下载自己做的网站微信广告推广平台
  • 开封做网站睿艺美哈尔滨新闻头条今日新闻
  • 高端企业网站建设蓦然郑州网站建设网页模板免费下载网站
  • 学做网站开发优化网站推广
  • 给人做ppt的网站网站seo优化工具
  • 苏州企业网站建设电工培训学校
  • 网站建设600分站优缺点南宁网站建设服务公司
  • 网站开发用px还是rem友情链接适用网站