线性模型基础【机器学习算法一广义线性模型1】

本文深入浅出地介绍了线性模型的基础知识,从画直线y=0.5*x+3开始,逐步讲解如何根据两点进行直线拟合,并扩展到使用三点进行拟合,最后探讨了如何用更多点进行直线预测。通过sklearn库的LinearRegression和make_regression函数,读者可以实际操作并理解线性模型的工作原理。

1.画直线y=0.5*x+3

import numpy as np
import matplotlib.pyplot as plt
#令x为-5到5之间,元素数为100的等差数列
x=np.linspace(-5,5,100)
y=0.5*x+3
plt.plot(x,y,c='orange')
plt.title('Straight Line')
plt.show()

在这里插入图片描述

2.根据两点拟合直线

【知识点】sklearn.linear_model.LinearRegression
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import numpy as np
import matplotlib.pyplot as plt
#导入线性回归模型
from sklearn.linear_model import LinearRegression
#输入两个点的横坐标
X=[[1],[4]]
#输入两个点的纵坐标
y=[3,5]
#用线性模型拟合这两个点
lr=LinearRegression().fit(X,y)
#画出两个点和直线的图形
z=np.linspace(0,5,20)
plt.scatter(X,y,s=80)
plt.plot(z,lr.predict(z.reshape(-1,1)),c='k')
plt.title('Straight Line')
plt.show()
#输出直线方程
print('y={:.3f}'.format(lr.coef_[0]),'x +','{:.3f}'.format(lr.intercept_))

在这里插入图片描述

3.将2中的两点改为三点

import numpy as np
import matplotlib.pyplot as plt
#导入线性回归模型
from sklearn.linear_model import LinearRegression
#输入两个点的横坐标
X=[[1],[4],[3]]
#输入两个点的纵坐标
y=[3,5,3]
#用线性模型拟合这两个点
lr=LinearRegression().fit(X,y)
#画出两个点和直线的图形
z=np.linspace(0,5,20)
plt.scatter(X,y,s=80)
plt.plot(z,lr.predict(z.reshape(-1,1)),c='k')
plt.title('Straight Line')
plt.show()
#输出直线方程
print('y={:.3f}'.format(lr.coef_[0]),'x +','{:.3f}'.format(lr.intercept_))

在这里插入图片描述

4.更多点预测直线

【知识点】sklearn.datasets.make_regression

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_regression
from sklearn.linear_model import LinearRegression
X, y = make_regression(n_samples=50, n_features=1, n_informative=1,noise=50,random_state=1)
reg = LinearRegression()
reg.fit(X,y)
z = np.linspace(-3,3,200).reshape(-1,1)
plt.scatter(X,y,c='b',s=60)
plt.plot(z, reg.predict(z),c='k')
plt.title('Linear Regression')
plt.show()
#输出直线方程
print('y={:.3f}'.format(reg.coef_[0]),'x +','{:.3f}'.format(reg.intercept_))

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值