单自变量线性回归模型k和b系数计算的库函数查询
单变量线性回归(y=kx+b)的斜率与截距计算方法
以下是scipy、numpy、sklearn三个库中直接计算单变量线性回归斜率k和截距b的原生函数,附代码示例:
numpy:np.polyfit
最简洁的方式,利用一次多项式拟合实现线性回归,直接返回[k, b]:
import numpy as np # 示例数据 x = np.array([1, 2, 3, 4, 5]) y = np.array([2, 4, 5, 4, 5]) # 计算斜率和截距 k, b = np.polyfit(x, y, 1) print(f"斜率k: {k:.4f}, 截距b: {b:.4f}")
scipy:scipy.stats.linregress
专门用于线性回归的统计函数,除斜率和截距外,还会返回相关系数、p值等统计指标,适合需要统计分析的场景:
from scipy.stats import linregress # 示例数据 x = [1, 2, 3, 4, 5] y = [2, 4, 5, 4, 5] # 执行线性回归 reg_result = linregress(x, y) k = reg_result.slope b = reg_result.intercept print(f"斜率k: {k:.4f}, 截距b: {b:.4f}") # 可选:查看相关系数等额外统计量 # print(f"相关系数r: {reg_result.rvalue:.4f}")
sklearn:LinearRegression
虽主打多变量线性回归,但完全支持单变量场景,扩展性强,适合后续可能扩展到多变量的需求:
from sklearn.linear_model import LinearRegression import numpy as np # sklearn要求特征输入为二维数组,需对x做reshape处理 x = np.array([1, 2, 3, 4, 5]).reshape(-1, 1) y = np.array([2, 4, 5, 4, 5]) # 拟合模型 model = LinearRegression() model.fit(x, y) k = model.coef_[0] # 单变量下系数数组仅一个元素 b = model.intercept_ print(f"斜率k: {k:.4f}, 截距b: {b:.4f}")
内容的提问来源于stack exchange,提问作者Бодя павук
相关产品推荐
相关产品推荐

