预测具有类别的数据集中的连续输出

数据挖掘 机器学习 Python 分类 scikit-学习 回归
2022-03-04 16:52:12

比方说:我正在研究一个机器学习项目,我正在研究一个形状为 4250,13 的数据集,它已经分为 7 个类别!请注意,这些类别不能被视为预测变量。以下是我的数据在类别功能“FAC”中的分组方式:

FSEG       32.852598 % of the dataset
FSTA       19.151644 % of the dataset
FD       19.003181 % of the dataset
FM      16.076352 % of the dataset
FT      5.132556 % of the dataset
PPSE       4.814422 % of the dataset
FSDC    2.969247 % of the dataset

我有一个连续的输出,我想预测'CGPA',所以任务是一个回归,我的目标是在每个类别中预测它,最终的决定将是预测输出最大化的类别。

我处理这个问题的方法是将我的数据集采样成 7 个子数据集,并在所有这 7 个数据集中训练模型。对于新的输入,预测每个类别的输出,最终类别将是预测输出最大的地方。

现在我想知道,有没有办法在一个数据集中做到这一点并自动预测我的输出最大的类别?使用单个模型而不是 7 个?

PS:我正在使用python和scikit学习

听起来像随机森林,但不确定是不是……有人可以帮忙吗?任何帮助将不胜感激。

这是我的数据集,其中包含在每个类别中收集的样本。我的最终输出称为 CGPA,类别标签为“FAC”。

样本数据集

1个回答

随机森林可以工作,但标准回归也可以使用分类变量作为预测变量。您必须将分类预测变量“单热”编码为 6 个“虚拟”变量(classes-1 = 7-1 = 6)。第一个虚拟变量将编码 0/1 用于观察是否为 A 类,第二个虚拟变量编码为 0/1 用于 B 类,等等。您只需要 6 个虚拟变量,因为如果对于给定的观察它们全部为 0,这意味着观察在第 7 组 (G) 中。

在某些语言(例如 R)中,回归命令会自动为您执行这种一次性转换。对于 python,pandas 包可以用pd.get_dummies(data).