决策树对类别型数据的处理

http://stackoverflow.com/questions/25038294/how-do-i-run-the-spark-decision-tree-with-a-categorical-feature-set-using-scala

一开始觉得这个不是问题,因为DT本身就是处理类别型数据的,加上之前自己写代码的时候也都是支持类别型数据的。

所以按照自己的理解,如果数据是

a,h,y

b,c,x

这种类别型的,就直接输入到spark即可。但是看到网上说由于spark的Vector不支持string,所以需要将其转为数值型。那么如何转换呢?

这是个问题,一般的转换方式是采用one-hot编码,具体的可以看这个

就是说将a,b,c这三个变成一个3*3的矩阵。那么这个有啥好处呢?

首先对于上面所说的,如果a=0,b=1,c=2,那么算法就会认为b比a更接近c,但事实上没有这个关系

而one-hot编码则没有这样的度量

并且在某种意义上来说,还扩充了特征。

但是这样做无疑也增加了空间,不过利用dense matrix应该也还好。

好咧,言归正传,那么在spark中如何搞类别型数据呢?

先放个例子:

从上面一眼就能看出来,categoricalFeatureInfo这个是用来指示

就是说Map中的key值是说明那一列是类别型数据,而value值表示该列有多少种属性值,嗯,就是这么简单。

有点不明白那些人,就不会网上搜一下么,你纠结了一天,我网上一搜,2分钟给你答案,何必呢。

时间: 2024-10-20 02:05:20

决策树对类别型数据的处理的相关文章

seaborn 数据可视化(二)带有类别属性的数据可视化

Seaborn的分类图分为三类,将分类变量每个级别的每个观察结果显示出来,显示每个观察分布的抽象表示,以及应用统计估计显示的权重趋势和置信区间: 第一个包括函数swarmplot()和stripplot() 第二个包括函数boxplot()和violinplot() 第三个包括函数barplot()和pointplt() 导入所需要的库: import numpy as np import matplotlib.pyplot as plt import seaborn as sns sns.se

独热编码在数据处理中的作用

独热编码即 One-Hot 编码,又称一位有效编码,其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都有它独立的寄存器位,并且在任意时候,其中只有一位有效. 例如对六个状态进行编码: 自然顺序码为 000,001,010,011,100,101 独热编码则是 000001,000010,000100,001000,010000,100000 原文链接:http://blog.csdn.net/dulingtingzi/article/details/51374487 问题由来 在很多机器

【转】数据预处理之独热编码(One-Hot Encoding)

原文链接:http://blog.csdn.net/dulingtingzi/article/details/51374487 问题由来 在很多机器学习任务中,特征并不总是连续值,而有可能是分类值. 例如,考虑一下的三个特征: ["male", "female"] ["from Europe", "from US", "from Asia"] ["uses Firefox", "

数据预处理:独热编码(One-Hot Encoding)

http://blog.csdn.net/pipisorry/article/details/61193868 问题由来 在很多机器学习任务中,特征并不总是连续值,而有可能是分类值. 例如,考虑一下的三个特征: ["male", "female"] ["from Europe", "from US", "from Asia"] ["uses Firefox", "uses Ch

OneHotEncoder独热编码和 LabelEncoder标签编码

学习sklearn和kagggle时遇到的问题,什么是独热编码?为什么要用独热编码?什么情况下可以用独热编码?以及和其他几种编码方式的区别. 首先了解机器学习中的特征类别:连续型特征和离散型特征 拿到获取的原始特征,必须对每一特征分别进行归一化,比如,特征A的取值范围是[-1000,1000],特征B的取值范围是[-1,1].如果使用logistic回归,w1*x1+w2*x2,因为x1的取值太大了,所以x2基本起不了作用.所以,必须进行特征的归一化,每个特征都单独进行归一化. 对于连续性特征:

kaggle-Corporación Favorita Grocery Sales Forecasting

https://blog.csdn.net/bitcs_zt/article/details/79256688 该项比赛1月15日就已经结赛了,但由于之后进入期末,备考花费了大量的时间,没来得及整理相关内容.现在终于有时间好好回顾比赛,并对这次比赛的过程进行记录. Corporación Favorita Grocery Sales Forecasting 本次比赛是预测商品销量,给出的训练数据为<单位销量,日期,商店ID,商品ID,推销活动标签>,其中单位销量是待预测值,基本上属于回归问题.

数据可视化简介

数据可视化参考流程 科学可视化的早期可视化流水线,描述了从数据空间到可视空间的映射,包含串行处理数据的各个阶段: 原始数据->数据分析->预处理数据->过滤->关注数据->映射->几何数据->绘制->图像数据 而后Card,Mackinlay,Shneiderman等人提出了信息可视化参考流程,后继几乎所有著名的信息科石化系统和工具都支持这个模型. 数据可视化设计的层次嵌套模型 第一层(问题刻画层):概括现实生活中用户遇到的问题: 第二层(抽象层):抽象相应

echarts参数详解--散点图

参考地址:http://www.cnblogs.com/weizhen/p/5907617.html <!-- 1.首先需要下载包echarts.js,然后引入该包 --> <!DOCTYPE html> <html> <header> <meta charset="utf-8"> <!--引入 ECharts 文件--> <script src="echarts.js"></

Machine &amp; Deep Learning 概述

本节开始进入机器学习和深度学习的基础理论系统学习阶段,博客内容为在学习过程中整理的笔记. 1. 机器学习 概念:多领域交叉学科,涉及概率论,统计学.逼近论,凸分析,算法及复杂度理论等多门学科.专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能. 学科定位:人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,主要使用归纳.综合,而不是演绎. 定义:探究和开发一系列算法来如何是计算机不需要通过外部明显的指示,而可以自