使用分类特征构建回归模型

我正在尝试使用房价预测作为一个实际案例来学习机器学习。目前,我遇到了关于社区的问题。

在大多数机器学习示例中,我看到使用的特征包括卧室数量、楼层面积、土地面积等。直观上,这些特征与房价有很强的相关性。然而,社区的情况并非如此。假设我随机为每个社区分配一个neighborhood_id,我无法判断id为100的社区的房价是高于还是低于id为53的社区的房价。

我想知道我是否需要进行一些数据预处理,比如为每个社区找出平均价格,然后使用处理后的数据,或者是否存在可以从看似无关的特征中找出关系的现有机器学习算法?


回答:

我假设您正在尝试在包含连续和分类数据的回归模型中解释社区与房价之间的关系。从我记得的来看,R会自动使用独热编码处理分类变量。

有几种方法可以从分类变量中创建数据抽象来解决这个问题:

1) 独热编码

假设您正在尝试根据楼层面积和社区来预测房价。假设楼层面积是连续的,而社区是分类变量,共有A、B和C三个可能的社区。一种可能性是将社区编码为独热向量,并将每个分类变量视为一个新的二进制变量:

neighborhood A B C     A       1 0 0     B       0 1 0      B       0 1 0     C       0 0 1

回归模型将类似于:

y = c0*bias + c1*floor_space + c2*A + c3*B + c4*C

请注意,这个社区变量类似于回归模型中的偏置。每个社区的系数可以被解释为社区的“偏置”。

2) 从分类到连续

让我们称Dx和Dy为所有社区到地图上一个固定点的水平和垂直距离。通过这样做,您创建了一个数据抽象,将社区这个分类变量转换为两个连续变量。通过这种方式,您可以将房价与从固定点出发的水平和垂直距离相关联。

请注意,只有当从分类到连续的转换是有意义时,这种方法才适用。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注