- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含 47 个样本的小数据集。我正在运行具有 2 个特征的线性回归。
运行 LinearRegression 后,我运行了 Ridge(带有下垂)。我希望它能够快速收敛,并返回与计算求解正规方程完全相同的预测。
但是每次运行 Ridge 时,我都会得到不同的结果,接近 LinearRegression 提供的结果,但并不完全相同。我运行多少次迭代并不重要。这是预期的吗?为什么?过去我自己实现了常规梯度下降,它很快就收敛到这个数据集中。
ols = sklearn.linear_model.LinearRegression()
model = ols.fit(x_train, y_train)
print(model.predict([[1650,3]]))
%[[ 293081.4643349]]
scaler=preprocessing.StandardScaler().fit(x_train)
ols = sklearn.linear_model.Ridge(alpha=0,solver="sag",max_iter=99999999,normalize=False)
model = ols.fit(x_scaled, y_train)
x_test=scaler.transform([[1650,3]])
print(model.predict(x_test))
%[[ 293057.69986594]]
最佳答案
谢谢大家的回答!在阅读了 @sascha 的回复后,我又阅读了一些关于随机平均梯度下降的内容,我想我已经找到了这种差异的原因,而且事实上它似乎是由于算法的“随机”部分造成的。
请查看维基百科页面: https://en.wikipedia.org/wiki/Stochastic_gradient_descent
在常规梯度下降中,我们根据以下公式更新每次迭代的权重:
总和的第二项是成本函数的梯度乘以学习率 mu。
重复此操作直到收敛,并且在给定相同的起始权重的情况下,经过相同次数的迭代后,它总是给出相同的结果。
在随机梯度下降中,这是在每次迭代中完成的:
总和的第二部分是单个样本的梯度(乘以学习率 mu)。所有样本在开始时都是随机的,然后算法在每次迭代时循环使用它们。
所以我认为有几个因素导致了我所询问的行为:
(已编辑,请参阅下面的回复)
(编辑)(这可以通过调用 fit 方法时使用 random_state 来确定)
(编辑)(收敛标准取决于tol(解决方案的精度)。通过修改此参数(我将其设置为 1e-100),我能够获得与该解决方案相同的解决方案由线性回归报告)
关于Python Scikit - LinearRegression 和 Ridge 返回不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49342218/
我做了一个非常简单的程序,它从 csv 文件中获取数据列,这里是文件数据的简短预览: ,matchId,blue_win,blueGold,blueMinionsKilled,blueJungleMi
我正在尝试解决线性回归问题,并且正在使用 sklearn 中的 LinearRegression() 函数。是否可以显示权重和偏差? 最佳答案 拟合模型后,使用coef_属性来检索权重并使用inter
我正在尝试使用 scikit-learn 库进行特征选择。我的数据很简单。行是样本,列是特征。虽然原来的类标签是 X 和 Y,但我将它们更改为数字以进行线性回归,X 为 0,Y 为 1。 G1 G2
我在 Python ( sklearn ) 中进行多元线性回归,但出于某种原因,系数未作为列表正确返回。相反,返回列表中的列表: from sklearn import linear_model cl
import os import pandas as pd import matplotlib.pyplot as plt from sklearn.pipeline import Pipeline
我正在使用 sklearn.linear_model 和模块 LinearRegression 执行一个简单的自回归模型。你可以在下面看到我的代码。训练数据集位于 train 中,X 包含目标的滞后版
我有一个这样的列表: list1 = [['2012', '1', '3', '1', '832.0', '261.0', '100.00'], ['2012', '1', '5', '1', '5
当我尝试使用 scikit-learn LinearRegression 时,模型表现不佳,但是,当我尝试 scipy 线性回归时,它运行良好,数据集很简单,逻辑或者代码有缺陷吗? 我尝试了多个 se
我是机器学习的初学者。这只是一个简单的问题,LinearRegression()中的coef_代表什么?我知道它代表系数,但我不明白这些值,高且正的 coef_ 是否意味着更强的关系? 而且,如果 c
从一个示例开始,我尝试进行线性回归。问题是我得到了错误的结果。作为拦截器我应该有:2.2。 我尝试添加在另一篇文章中找到的 .optimizer.setStepSize(0.1),但仍然得到一个奇怪的
我正在一个简单的数据集上尝试 scikit-learn LinearRegression 模型(来自 Andrew NG coursera 类(class),我并不重要,请查看图表以供引用) 这是我的
所以我正在开展一个项目,该项目使用 RFECV 进行特征选择,然后对所选变量进行岭回归。 数据集的结构方式我有一个 train_y = 因变量,train_x = 数据框中的所有其他内容(变量在其他模
我想要模型的公式以便在其他语言/项目中使用它。有没有办法从模型中导出公式? 我将使用 sklearn linear regression model . 我最终想做的是:给定一个公式 f() 和数据集
我正在尝试进行多变量线性回归。但我发现 sklearn.linear_model 工作起来很奇怪。这是我的代码: import numpy as np from sklearn import line
我正在尝试根据各种其他因素预测调用中心的调用量。我有一个相当干净的数据集,也相当小,但足够了。我能够训练和测试历史数据并获得分数、摘要等。我一生都无法弄清楚如何使用预测因子数据来预测 future 的
我一直在尝试按照 bigdataexaminer 上的教程通过线性回归来拟合这些数据。直到此时一切都运行良好。我从 sklearn 导入了 LinearRegression,并打印出系数的数量就好了。
我最近开始使用线性回归进行机器学习。我使用了 LinearRegression (lr) 来预测一些值。事实上,我的预测很糟糕,我被要求更改超参数以获得更好的结果。 我使用以下命令获取超参数: lr.
from sklearn.linear_model import LinearRegression 在 Jupyter Notebook 中给了我这个错误: ---------------------
据我了解,scikit-learn 中的 LinearRegression 类和 SGDRegressor 类都执行线性回归。但是,只有 SGDRegressor 使用梯度下降作为优化算法。 那么Li
我正在尝试计算日期值对的趋势值。 我正在使用 Robert Sedgewick 和 Kevin Wayne 的 LinearRegression.java。 https://algs4.cs.prin
我是一名优秀的程序员,十分优秀!