首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用遗传算法优化knn中的参数k

用遗传算法优化knn中的参数k
EN

Stack Overflow用户
提问于 2018-08-20 02:30:57
回答 1查看 410关注 0票数 2

我尝试用遗传算法在r中优化knn中的参数k,使用下面的代码进行了尝试,但仍然收到了一个错误。以选取的k值为适应度函数,利用knn的精度。如果你知道knn和遗传算法,请帮助我。这就是我所做的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 library(caret)
 library(GA)
 library(class)

#data import 
tea_jenis_F3 <- read.csv("D:/inggrit/program/F3.csv")
str(tea_jenis_F3)

#to check missing data 
anyNA(tea_jenis_F3)

#data slicing
set.seed(101)
intrain_jenis_F3 <- createDataPartition(tea_jenis_F3$category, p= 0.7, list = FALSE)
training_jenis_F3 <- tea_jenis_F3 [intrain_jenis_F3,]
testing_jenis_F3 <- tea_jenis_F3 [-intrain_jenis_F3,]

#transforming the dependent variable to a factor 
training_jenis_F3[["category"]] = factor(training_jenis_F3[["category"]])

#fitness function
fitness_KNN <- function(chromosome)
{
  # First values in chromosome are 'k' of 'knn' method
  tuneGrid <- data.frame(k=chromosome[1])


  # train control
  train_control <- trainControl(method = "cv",number = 10)

  # train the model
  set.seed(1234)
  model <- train(category ~ ., data= training_jenis_F3, trControl=train_control, 
                 method="knn", tuneGrid=tuneGrid)

  # Extract accuracy statistics
  accuracy_val <- model$results$accuracy

}


GA <- ga(type = "real-valued", fitness = fitness_KNN, lower = -10, upper = 10, monitor = NULL)

错误:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Something is wrong; all the Accuracy metric values are missing:
Accuracy       Kappa    
 Min.   : NA   Min.   : NA  
 1st Qu.: NA   1st Qu.: NA  
 Median : NA   Median : NA  
 Mean   :NaN   Mean   :NaN  
 3rd Qu.: NA   3rd Qu.: NA  
 Max.   : NA   Max.   : NA  
 NA's   :1     NA's   :1    
Error: Stopping
In addition: There were 11 warnings (use warnings() to see them)

如果你能帮我,我将不胜感激。谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-08-23 06:32:08

我认为问题不在于代码,而在于方法:在这种设置中使用遗传算法优化k是不可能的,也没有必要的。

您调用了ga(type = "real-valued", lower = -10, upper = 10, ...),这意味着ga将在-10到10之间搜索最佳值。

  1. k的负值对knn是不可能的。
  2. ga将生成非整数值,例如k为1.234,这当然也是不可能的。

幸运的是,在这种情况下,没有必要使用像遗传算法这样复杂的方法。如果您想在范围1中找到最佳的k,10只需计算每个值的模型,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
k_cands <- 1:10
accuracy <- numeric()

for(k in k_cands) {
  [compute model with k]
  accuracy <- c(accuracy, model$results$accuracy)
}

best_k <- k_cands[which.max(accuracy)]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51928823

复制
相关文章
elasticsearch geo_point 地理位置过滤 按经度排序
"poi": [           113.40780444444,           22.920241666667       ],
双面人
2019/08/30
1.4K0
elasticsearch geo_point 地理位置过滤 按经度排序
通过IP地址获取当前地理位置的接口(包含纬经度)
直接访问:https://api.liguangchun.cn/api/v7/ip/ 就可以查询到了
李光春
2018/09/18
3.5K0
使用 Mapbox 在 Vue 中开发一个地理信息定位应用
在本文中,我们将大致了解正向地理编码和反向地理编码的概念。 我们将使用 Mapbox 和 Vue.js 2.6.11 构建一个应用这些概念来显示特定位置的应用程序。
前端修罗场
2023/10/07
7360
使用 Mapbox 在 Vue 中开发一个地理信息定位应用
【探花交友】day07—搜附近
探花功能是将推荐的好友随机的通过卡片的形式展现出来,用户可以选择左滑、右滑操作,左滑:“不喜欢”,右滑:“喜欢”。
陶然同学
2023/04/12
1.2K0
【探花交友】day07—搜附近
【Java AWT 图形界面编程】经度 Longitude 、纬度 Latitude 计算 ( 经度、纬度概念 | 根据经纬度计算距离 )
经度 Longitude , 本初子午线 位置 为 0 度经线 , 相当于水平 x 轴 的坐标 , 经度的取值范围 -180 度 ~ +180 度 ;
韩曙亮
2023/03/25
7830
【Java AWT 图形界面编程】经度 Longitude 、纬度 Latitude 计算 ( 经度、纬度概念 | 根据经纬度计算距离 )
【GIS - 地理信息系统】WGS 84 坐标系和 GCJ-02 坐标加密偏移 ( 大地坐标系 和 加密坐标系 | WGS 84 坐标体系简介 | GCJ-02 坐标加密偏移 )
大地坐标系(Geodetic Coordinate System)是一种用于 表示地球上位置的坐标系统,考虑了地球的形状和尺寸 ;
韩曙亮
2023/10/11
7.9K0
【GIS - 地理信息系统】WGS 84 坐标系和 GCJ-02 坐标加密偏移 ( 大地坐标系 和 加密坐标系 | WGS 84 坐标体系简介 | GCJ-02 坐标加密偏移 )
如何使用AngularJS和PHP为任何位置生成短而独特的数字地址
邮政地址通常很长,有时很难记住。在许多情况下,需要较短的地址。例如,能够发送仅由几个字符组成的短地址可以确保更快地提供紧急救护车服务。Pieter Geelen和Harold Goddijn 于2001年开发了Mapcode系统,以便为世界上任何物理地址创建简短地址。
谢鸢
2018/11/05
13.2K0
谷歌地图地理解析
地址解析就是将地址(如:贵州省贵阳市)转换为地理坐标(如经度:106.71,纬度:26.57)的过程。
全栈程序员站长
2022/09/07
1.5K0
如何通过经纬度获取地址信息?
摘要 Google Maps API Web Services,是一个为您的地图应用程序提供地理数据的 Google 服务的 HTTP 接口集合。具体包括:Google Geocoding API、Google Directions API、Google Elevation API、Google Places API。本文将探讨如何通过Google Geocoding API服务来获取地址信息。 ----  目录 什么是网络服务? 区分地址解析与反地址解析 地址查询(反地址解析)请求 地址查询(反地址解析)
刘皓
2018/04/03
7.5K0
如何通过经纬度获取地址信息?
Golang计算两个经度和纬度之间的距离
Go语言计算两个经度和纬度之间的距离 package main import ( "fmt" "math" ) func main() { lat1 := 29.490295 lng1 := 106.486654 lat2 := 29.615467 lng2 := 106.581515 fmt.Println(EarthDistance(lat1, lng1, lat2, lng2)) } func EarthDistance(lat1, lng1, lat2, lng
大师级码师
2021/11/02
2.6K0
HTML5的Geolocation API
Geolocation API用于将用户当前地理位置信息共享给信任的站点,这涉及用户的隐私安全问题,所以当一个站点需要获取用户的当前地理位置,浏览器会提示用户是“允许” or “拒绝”。
meteoric
2018/11/15
1.5K0
山月目前在做 APP 及旅游中涉及到的地理科普
经度,用以指示一个地点的东西向地理位置。地球上某一地点离本初子午线以东或以西的度数。本初子午线的经度是0°,「东经为正数,西经为负数」。
山月
2020/11/11
1.1K0
山月目前在做 APP 及旅游中涉及到的地理科普
微信小程序地图与位置相关操作
map组件的两个属性longitude和latitude表示当前地图中心的经度和纬度,和当前用户所在位置的经度和纬度是不同概念,无直接关系。例如,某然在广东省东菀市,但是可以打开北京天安门为中心的一幅地图,map的longitude和latitude是用来控制地图中心的参数,并不是用户实时的地理位置。
别团等shy哥发育
2023/02/25
2.6K0
微信小程序地图与位置相关操作
使用folium绘制区域轮廓与网格线
上次咱们介绍过《想知道所在的城市有多少条道路?我用python发现北京一共有1.5万条道路!》,其中关于北京行政区域轮廓及网格的绘制有朋友感兴趣,今天我们就来简单介绍一下。
可以叫我才哥
2021/08/05
7.7K1
【Go 语言社区】HTML5 Geolocation(地理定位)-转
HTML5 Geolocation(地理定位)用于定位用户的位置。 ---- 定位用户的位置 HTML5 Geolocation API 用于获得用户的地理位置。 鉴于该特性可能侵犯用户的隐私,除非用
李海彬
2018/03/20
2.5K0
数据科学 IPython 笔记本 8.16 地理数据和 Basemap
数据科学中一种常见的可视化类型是地理数据。Matplotlib 用于此类可视化的主要工具是 Basemap 工具包,它是位于mpl_toolkits命名空间下的几个 Matplotlib 工具包之一。不可否认,Basemap 使用时有点笨拙,甚至简单的可视化渲染也要花费更长的时间,超出你的想象。
ApacheCN_飞龙
2022/05/07
1.7K0
数据科学 IPython 笔记本 8.16 地理数据和 Basemap
手把手教你完成一个数据科学小项目(7):经纬度获取与BDP可视化
请先阅读“中国年轻人正带领国家走向危机”,这锅背是不背? 一文,以对“手把手教你完成一个数据科学小项目”系列有个全局性的了解。
古柳_DesertsX
2018/09/26
1.5K0
Basemap工具函数(3)
给定向量场的 东西 和 南北 方向分量以及经纬度点,然后对向量进行旋转,使向量场在地图投影上以适当的方向显示。
bugsuse
2020/04/21
1.1K0
Basemap工具函数(3)
geohash之2d 地理空间索引
个人博客:https://suveng.github.io/blog/​​​​​​​ 2d 地理空间索引 概述 2D地理空间索引可以将文档与二维空间中的位置(例如地图上的点)相关联。MongoDB将位置字段中的二维坐标解释为点,并且可以将这些点编入特殊索引类型以支持基于位置的查询。地理空间索引提供特殊的地理空间查询操作。例如,您可以基于与其他位置的邻近度或基于指定区域中的包含查询文档。
suveng
2019/09/17
2.3K0
点击加载更多

相似问题

带有接口的外观设计模式

11

外观设计模式

40

外观设计模式和抽象

32

库存的外观设计模式

20

如何使用外观设计模式?

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文