【问题标题】:String Data Training for KNN Classification : PythonKNN 分类的字符串数据训练:Python
【发布时间】:2018-01-01 15:51:43
【问题描述】:

我一直在尝试学习训练我的数据,即实现具有字符串数据的机器学习。我所能理解的是,您可以将字符串数据类型转换为分类,但我无法使用 LabelEncoder 来做到这一点。我听说我们不应该映射数据并更改它的数值数据,因为它的预测是错误的。

这是一个数据示例:

LP001002,Male,No,0,Graduate,No,5849,0,,360,1,Urban,Y
LP001003,Male,Yes,1,Graduate,No,4583,1508,128,360,1,Rural,N
LP001005,Male,Yes,0,Graduate,Yes,3000,0,66,360,1,Urban,Y
LP001006,Male,Yes,0,Not Graduate,No,2583,2358,120,360,1,Urban,Y
LP001008,Male,No,0,Graduate,No,6000,0,141,360,1,Urban,Y
LP001011,Male,Yes,2,Graduate,Yes,5417,4196,267,360,1,Urban,Y

如你所见,性别 (2)、已婚(3)、受抚养人(4)、教育(5)、自雇(6)、Property_area(11)、loan_status(!2) 是字符串。

某些列缺少数据,因此无法使用 OneHot 编码器。 错误:无序类型 str() > int()

我想将其转换为分类类型并将其用作 knn 的训练模型。我使用的是 python 3.6。

【问题讨论】:

标签: python machine-learning knn categorical-data


【解决方案1】:

您要做的是执行一次热编码,有一个功能:

http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.OneHotEncoder.html

【讨论】:

  • 我试过了,但我得到了这个错误:无序类型 str() > int()
  • 您需要清理数据作为预处理步骤,除非您编写自己的函数来执行此操作。无论哪种方式,清理数据都是实施机器学习算法时的标准步骤。您可以删除特征(列)或条目。您还可以影响给定值:scikit-learn.org/stable/modules/generated/…
  • 当您丢失数据时,您甚至可以执行以下操作:将其替换为“缺失”值或您会很容易注意到的特定数字(如 -9999),然后一个热编码将起作用,您将有一个缺失数据的类别
猜你喜欢
  • 1970-01-01
  • 2015-06-17
  • 2021-03-16
  • 2021-03-12
  • 2016-07-03
  • 2016-10-06
  • 2012-06-04
  • 1970-01-01
  • 2014-09-23
相关资源
最近更新 更多