输入变量可以是离散型数据和连续性数据的组合吗?

  统计/机器学习 监督式学习 数据预处理    浏览次数:402        分享
0

比如说输入变量第一个是各省市,用(1,2,3,4...m)来表示各省市,是一个离散变量,第二个输入变量是车速,是一个连续变量,那要怎么进行数据处理,使得能够进行训练,就是离散变量+连续变量,要对这个离散变量做什么处理呢?

 

goldminer   2020-04-11 16:36



   3个回答 
5

处理这种分类变量,要结合模型来看。但总体来说有以下两种处理方式:

第一种是Label Encoder, 直接将分类变量转为数值变量,你的例子里就是使用(1,2,... m)来表示城市,这种方法为变量赋予了顺序的含义,变量的每个。我总结了几个特点:

  • 分类变量是有序的话,例如小学,初中,高中这种,可以使用
  • 如果模型只是用部分特征值来计算,比如decision tree, random forest,等树类算法适用。原因是数据集里连续变量多时,用One-hot-encoding会让其他非分类变量不被/很少被选入为特征
  • 回归算法,neural network算法等不适用


第二种时One-Hot-Encoding,拓增数据集至很多个特征值,你的例子里,以每一个城市为一个特征,值只取0/1,如果有m个城市,则新增m个特征, 这种方法能保证每个分类变量里的取值有同等的重要性,无序的,不正交的变量。特点如下:

  • 分类变量如果是无序的话,比如城市,可以使用One-Hot-Encoding
  • 回归算法,KNN,Neural network等使用
  • 结合PCA降维来使用有奇效,PCA可以找到线性相关的部分,并组合这部分特征
  • 缺点就是会占用比较多内存计算空间了,毕竟数据集可能会被扩增到非常大

其余的方法如LightGBM encoding(支持类别变量), Hash encoding, embedding等,不同情况不同采用,这里就不多说了。

Reference:

What is the best method for converting categorical features to something numerical ones.

How LightGBM deals with categorical features

What algorithms require one-hot encoding?

SofaSofa数据科学社区DS面试题库 DS面经

QuinnWei   2020-04-16 08:30

1

你可以把省份进行独热处理(one-hot encoding),也就是把这一个特征变成m个二元特征。

SofaSofa数据科学社区DS面试题库 DS面经

wxw_pku   2020-04-12 17:13

比如说省份的数量是10个,意思是不是把这10个省份用(0,0,0,0,1,0,0,0,0,0)类似这样的形式考虑?然后在后面加上如速度的数值,比如是30,那这样组合起来的训练集样式就是(0,0,0,0,1,0,0,0,0,0,30)这样的吗? - goldminer   2020-04-13 11:37
是的 - wxw_pku   2020-04-13 23:50
0

如果你是用python里的sklearn的api,那么你要离散变量处理成连续变量,才能训练

如果你用catboost,其实没有影响,可以直接混合离散变量和连续变量一起训练

SofaSofa数据科学社区DS面试题库 DS面经

壬金   2020-04-26 08:46



  相关主题

对于数值型变量模型怎么知道是连续变量还是离散变量?   2回答

对连续特征一定要进行分箱处理吗?   4回答

数据一样,y却不一样的样本该怎么处理?   2回答

离散变量和连续变量可以一起放入机器学习的分类器中吗?   1回答

z-score标准化不适用于处理什么样的数据?   1回答

二值化和Onehot表示的特征哪一个较好?   1回答

什么时候需要对y或者特征进行对数变换?   1回答

机器学习中的维度灾难怎么防止和克服?   0回答

机器学习中的过采样和欠采样是什么意思?   2回答

在数据预处理阶段,特征的标准化有哪些方法?   1回答

怎么对特征做标准化使得数值都是正数?   3回答

数据白化是什么意思?   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!