小编Ben*_*lem的帖子

对 Python 上的每个系数具有特定约束的多元线性回归

我目前正在数据集上运行多元线性回归。起初,我没有意识到我需要限制我的体重;事实上,我需要有特定的正负权重。

更准确地说,我正在做一个评分系统,这就是为什么我的一些变量应该对笔记产生积极或消极的影响。然而,在运行我的模型时,结果不符合我的预期,我的一些“正”变量得到负系数,反之亦然。

例如,假设我的模型是:

y = W0*x0 + W1*x1 + W2*x2 
Run Code Online (Sandbox Code Playgroud)

其中 x2 是一个“正”变量,我想将 W2 的约束设为正值!

我一直在寻找关于这个问题的很多东西,但我没有发现任何关于特定权重/系数的约束,我发现的只是将所有系数设置为正数或将它们相加为一。

我正在使用 ScikitLearn 包研究 Python。这就是我获得最佳模型的方式:

def ridge(Xtrain, Xtest, Ytrain, Ytest, position):
    param_grid={'alpha':[0.01 , 0.1, 1, 10, 50, 100, 1000]}
    gs = grid_search.GridSearchCV(Ridge(), param_grid=param_grid, n_jobs=-1, cv=3)
    gs.fit(Xtrain, Ytrain)
    hatytrain = gs.predict(Xtrain)
    hatytest = gs.predict(Xtest)
Run Code Online (Sandbox Code Playgroud)

知道如何为特定变量的系数分配约束吗?定义每个约束可能会很麻烦,但我不知道该怎么做。

python constraints machine-learning linear-regression scikit-learn

7
推荐指数
1
解决办法
4733
查看次数