【发布时间】:2020-10-23 22:20:50
【问题描述】:
我正在尝试使用 sklearn 的 RANSAC: RANdom SAmple Consensus 算法拟合没有截距的线性模型(强制截距为 0)。在LinearRegression 中可以轻松设置fit_intercept=False。但是,RANSAC 的list of possible parameters 中似乎不存在此选项。这个功能没有实现吗?应该怎么做? sklearn 的 RANSAC 有哪些替代方法可以客观地选择内点和异常点,允许将截距设置为 0?
实现应该如下所示,但它会引发错误:
from sklearn.linear_model import RANSACRegressor
ransac_regressor = RANSACRegressor(fit_intercept=False)
【问题讨论】:
-
如果投反对票的人能解释原因就好了。这个网站上有很多关于 sklearn 的 RANSAC 的问题,通常很受欢迎。
-
我猜投票者投了反对票,因为这个问题更多的是关于线性模型的实现而不是关于编码,因此 stats.stackexchange 会是一个更好的提问地方。这也是我投票结束这个问题的原因。此外,许多人只是希望看到几行代码显示您在哪里偶然发现了问题。
-
我明白了,谢谢(也为答案!)。我最初在 stats.stackexchange 上问过这个问题,但我意识到这与 RANSAC 算法或理论本身无关。我们关于如何正确进行编码以使用 python 包的问题。此外,their documentation 建议我们来这里“解决 scikit-learn 使用问题”。再次感谢!
-
不客气!是的,这是其中一种边缘情况,您需要对统计部分和编码部分有所了解。但根据我的经验,您将在特定的 stackexchange 社区(如 stats.stackexchange)上获得这些案例的最佳答案。不幸的是,SO 社区对不符合他们的标准完全的问题非常不欢迎和绝对不灵活,因此在这些边缘情况下投票非常频繁。
-
我在您的问题中添加了一个非常简单的代码 sn-p。像这样,至少 SO 的“我们希望看到一些代码”部分会得到满足。 ;) 此外,我赞成你的问题。
标签: python scikit-learn linear-regression