我正在Kaggle上处理一个知识问题,其标签为正数。我尝试在scikit-learn中使用SGDRegressor来训练和测试模型。但是,来自学习模型的一些预测是负面的。
因此,我想知道是否有一种方法可以限制来自SGD之类的回归器的预测(在scikit learning中)仅具有正值。我知道在获得预测后会采用蛮力技术来限制值,但是我并不热衷于采用这种方法,因为它不能代表真实的模型。
最佳答案
您可能希望适合z = np.log(y)
而不是y
:model = SGDRegressor(**params).fit(X_train, np.log(y_train))
然后是y_predicted = np.exp(model.predict(X_test))
。
如果您希望能够在此类模型上使用sklearn的SGDRegressor
和fit
工具,则可以将predict
子类化以重载cross_val_score
和GridSearchCV
方法以在内部进行目标变量的此更改。