实际上线性模型不是指某一个模型,而是一类模型。在机器学习领域里,常用的线性模型包括线性模型、邻回归、套索回归、逻辑回归和线性SVC。
第1个知识点:用Python表示一条直线y=0.5x+3
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(-5,5,10)#设置x是-5到5之间的等差数列
y=0.5*x+3
plt.plot(x,y,c='orange')#线条设置成橙色
plt.title("straight line")#设置图形的标题
plt.show()
第2个知识点:已知2个点的坐标(1,3)、(4,5)画一条直线
import numpy as np
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')
#穿过(1,3)、(4,5)点的直线方程
print('y={:.3f}'.format(lr.coef_[0]),'x','+{:.3f}'.format(lr.intercept_))#这个是y与x的表达式
plt.title("straight line")
plt.show()
第3个知识点:已知3个坐标(1,3)、(4,5)、(3,3)画一条直线
#3个点的
import numpy as np
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个知识点:多个坐标点确定一条直线
#多个坐标
from sklearn.datasets import make_regression
from sklearn.linear_model import LinearRegression
import numpy as np
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("LinearRegression")
plt.show()
print("y={:.3f}".format(reg.coef_[0]),'x','+{:.3f}'.format(reg.intercept_))
以上是学习到的线性模型其中一种线性模型。用来回归数据,求系数还是很有用处的。比基本的回归方式。