首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >回归算法如何处理分类特征

回归算法如何处理分类特征
EN

Data Science用户
提问于 2017-12-31 02:47:48
回答 2查看 2.2K关注 0票数 0

我有一个数据集,其中大部分都是名义分类特征,我已经将我的模型转换为指示值,

原创

代码语言:javascript
复制
F1,F2,L
1 ,1 ,50
2 ,3 ,30

后指示值

代码语言:javascript
复制
F1-1,F1-2,F2-1,F2-3,L
1   ,0   ,1   ,0   ,50
0   ,1   ,0   ,1   ,30

我使用了不同的回归算法(泊松、贝叶斯、决策树、决策森林、增强决策树、线性回归、神经网络),但这些算法的性能都很低(r2 ~ 20-30)。

然后我在想回归是如何找到值的,然后我发现了一些有趣的东西:数据和标签的关系,它们就像下面的图片。

但在大多数书籍、例子和样本中,适合回归的数据如下所示

这就是我困惑的地方!

因此,我的问题是回归(或哪些算法)适合于预测高分类数据中的值。

EN

回答 2

Data Science用户

发布于 2017-12-31 04:18:05

TL;DR:将分类特征转换为数字特征是一种惯例,然后才能将它们用于回归或任何其他机器学习算法。从技术上讲,没有什么能阻止ML算法使用分类特性,但是它们的软件实现代价太高了,因此在ML实践中这种约定是非常昂贵的。

关于您的问题,如果您试图将分类标签值转换为数字值,则有多种方法,但是对于您的数据来说,最好的方法是一个热编码器。Scikit-学习PySpark以及大多数其他库都为它提供了方便的函数,因为它是非常常见的操作。例如:

代码语言:javascript
复制
from sklearn.preprocessing import OneHotEncoder
one_hot = OneHotEncoder()
one_hot.fit(...your_columns...)

一旦你有了所有的数字形式的数据,你几乎可以使用任何算法。

对于最后一个图,它是x和y之间的散点图,不清楚x和y是什么。奇怪的是,这不是一对一的关系,因为给定的x值似乎会产生y的多重值?!我不知道你在之前的数字中画了什么,给了你一条直线!

票数 1
EN

Data Science用户

发布于 2017-12-31 06:13:00

你的图表为你显示的分类变量和数字标签之间的关系看起来不是很强,因为对于SGPriorityValue的每一个值,似乎都有y的各种值。对于一个范畴变量,这种关系看上去可能不那么平滑和连续(就像您拥有的最后一个图),但是任何模型都必须有模式才能适应。

通常,如果一个范畴变量与一个数值相关,您可以期望得到如下所示的图形。

票数 0
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/26153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档