如果我的数据看起来像这样,线性回归永远不会有用吗?

数据挖掘 神经网络 回归 线性回归
2022-03-08 10:10:01

这些是我的输出变量散点图中的 7 个特征

很明显,您可以看到没有线性关系。如果有的话,那将是一条没有那么有用的垂直线。我需要某种类型的回归而不是分类,因为输出是连续的。我能想到的唯一选择是神经网络和 SVR(支持向量回归器)。线性回归在这里浪费时间吗?你会用什么?

用例是 - 我试图根据多边形的面积、长度、索引、复杂性、线数、曲线数和强度(黑色和白色)来预测多边形的 rgb 颜色。

在这第一步中,我只是试图预测从 0 到 1 的红色量。(从 255 缩小)。

编辑:

这里是标签 - rgb 值:http ://www.heypasteit.com/clip/2HZX

这是具有 7 个特征的数据:http ://www.heypasteit.com/clip/2HZY

1个回答

我尝试在您的数据上运行RANSAC 模型,但得到的结果比直线回归器更差。线性模型的所有三个响应变量 (r,g,b) 的十倍交叉验证平均绝对误差约为 0.37。我还运行了一个随机森林模型进行比较,得到的分数大致相同。这表明线性模型并不简陋,但由您决定是否足够好。

import sklearn.linear_model, sklearn.cross_validation, sklearn.ensemble, pandas

labels = pandas.read_csv('labels.csv', header=None, names=['r', 'g', 'b'])
features = pandas.read_csv('features.csv', header=None, names=['area', 'length', 'index', 'complexity', 'lines', 'curves', 'intensity'])

sklearn.cross_validation.cross_val_score(sklearn.linear_model.LinearRegression(), features, labels[:len(features)], 'mean_absolute_error', 10, -1).mean()

我也尝试过将异常值裁剪后的数据可视化,但没有发现它很有启发性,所以我没有在这里包含它。