R-从分类转换为KNN的数字



我正在尝试使用r的插入软件包来使用UCI机器学习中应用于"鲍鱼"数据库的KNN(链接到数据)。但是,当有分类值时,它不允许使用KNN。如何将分类值(在此数据库:"M","F","I"中)分别转换为数值,例如1,2,3

第一个答案似乎是一个非常糟糕的主意。将{"M","F","I"}编码为{1, 2, 3}意味着Infant = 3 * MaleMale = Female/2等。

KNN通过caret使用公式方法,确实允许分类值作为预测指标。否则,您需要将它们编码为二进制虚拟变量。

另外,显示您的代码并拥有可再现的示例将有很大帮助。

最大

通过read.table读取数据时,第一列中的数据是因素。然后

data$iGender = as.integer(data$Gender) 

会起作用。如果它们是性格,则通过因子绕道最简单:

data$iGender= as.integer(as.factor(data$Gender))

使用数据集中使用KNN算法的最简单方法之一,其功能之一是分类:" M"," F"one_answers" I",如您所提到的:仅在您的数据集EXSIT的CVS或Excel文件中,在右列中继续,然后将M更改为1和F,然后将I更改为3,然后将IT到3。在这种情况下,您可以在数据集中具有离散值,并且可以轻松地使用KNN算法使用KNN算法r。

您可以简单地使用stringsasfactor = true

读取文件

示例

data_raw<-read.csv('...../credit-default.csv', stringsAsFactors = TRUE)

StringAsFactor将给出Char Datatypes的数值替代

尝试使用r中的knncat软件包,该软件包将分类变量转换为数值对应物。

这是软件包的链接

最新更新