本文代码采用sklearn扩展库实现,使用线性回归算法解决下面的问题:根据平面上已知3个点的坐标,拟合最佳直线斜率k和截距b,然后根据拟合的结果对给出的x坐标进行预测,得到y坐标。
from sklearn import linear_model
def linearRegressionPredict(x, y): lr = linear_model.LinearRegression() # 拟合 lr.fit(x, y) return lr
# 平面上三个点的x轴坐标 x = [[1], [5], [7]] # 平面上三个点的y轴坐标 y = [[3], [100], [120]]
# 根据已知3个点拟合最佳直线的系数和截距 lr = linearRegressionPredict(x, y) # 查看最佳拟合系数 print('k:', lr.coef_) # 截距 print('b:', lr.intercept_)
# 测试代码,预测 xs = [[[3]], [[5]], [[7]], [[10]]] for item in xs: print(item, ':', lr.predict(item))
运行结果:
k: [[ 20.17857143]] b: [-13.10714286] [[3]] : [[ 47.42857143]] [[5]] : [[ 87.78571429]] [[7]] : [[ 128.14285714]] [[10]] : [[ 188.67857143]]