为啥 LinearRegression() 预测的结果是荒谬的?

Posted

技术标签:

【中文标题】为啥 LinearRegression() 预测的结果是荒谬的?【英文标题】:Why the outcome of LinearRegression() prediction is absurd?为什么 LinearRegression() 预测的结果是荒谬的? 【发布时间】:2021-02-22 10:26:07 【问题描述】:

我正在尝试预测俄罗斯的未来人口。我有 1960 年至 2019 年间俄罗斯公民人数的数据。

我正在使用 scikit-learn 的 LinearRegression(),下面是代码。

案情如此,结果荒谬!这是为什么?我找不到问题的根源。 我为模型提供了基本数据。指示它学习。似乎是一个简单的预测,但结果很糟糕:(。帮助!

X = population['years']y = population['Population']model = LinearRegression()model.fit(np.array(X).reshape(-1,1), y)future = np.round(model.predict(np.array([2025]).reshape(-1,1)))future == array([1.52775894e+08])

【问题讨论】:

那个预测对你不利呢?看起来人口在5年内增加了1000万。看起来很合理。 这种情况很荒谬,因为我已经包含了苏联解体之前的数据。正如俄罗斯和苏联在这件事上的处理方式应该不同(因为领土缩小、经济不同等)。我试图只包括自 1990 年以来的数据,预测似乎更合理。现在我将包括出生率和人口年龄分布,以获得更好、更准确的预测。 【参考方案1】:

输出是科学计数法 如何阅读这些数字是: 1st_number'e' + 2nd_number = 1st_number * 10^2nd_number python 代码*** X= 1.52775894e+08 打印('%.08f' % X)

【讨论】:

【参考方案2】:

这个数字意味着 1.52775894 乘以 10^8 等于 152,775,894,略高于 1.52 亿人。这似乎是合理的。

【讨论】:

我可以将这些值转换为整数吗? 好吧,尝试int(future[0]) 将其转换为整数。

以上是关于为啥 LinearRegression() 预测的结果是荒谬的?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 scikit-learn 的 LinearRegression() 捕获时间序列数据的趋势以进行预测

如何在我的案例中生成数据特征,以便我可以使用 LinearRegression 等工具进行预测?

机器学习之路: python 线性回归LinearRegression, 随机参数回归SGDRegressor 预测波士顿房价

sklearn LinearRegression.Predict() 问题

LinearRegression

Simple_LinearRegression_Test