sklearn中不使用fit方法、直接传系数和截距构建LinearRegression是否可行?
可以直接手动传入截距和系数构建LinearRegression模型
完全不需要调用内置的fit()方法即可实现。sklearn的LinearRegression类的拟合逻辑本质就是计算出特征系数和截距后,给实例的coef_、intercept_两个属性赋值,你完全可以跳过拟合步骤,直接手动给这两个属性赋值。
操作示例代码
from sklearn.linear_model import LinearRegression import numpy as np # 实例化线性回归对象 lr_model = LinearRegression() # 手动赋值系数和截距,示例为2个特征的场景,coef_维度和特征数匹配 lr_model.coef_ = np.array([3.1, 1.8]) lr_model.intercept_ = 2.4 # 可直接调用predict方法进行预测 test_X = np.array([[2, 5], [4, 3]]) print(lr_model.predict(test_X)) # 计算逻辑:3.1*特征1 + 1.8*特征2 +2.4,输出结果为 [17.6 20.2]
注意事项
- 手动赋值的
coef_维度必须和预测时输入的特征数量严格匹配,否则会触发维度不匹配报错 - 如果你的模型不需要截距项,直接把
intercept_赋值为0即可 - 该操作逻辑同样适用于Ridge、Lasso等sklearn其他线性模型类,赋值对应
coef_、intercept_属性后即可正常使用预测功能
内容的提问来源于stack exchange,提问作者David
相关产品推荐
相关产品推荐

