1.线性回归sklearn实现
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
#生成位于区间(-6,6)的等间距的100个点
x = np.linspace(-6,6,100)
#生成对应的函数值
y = 0.5 * x + 2
#绘制直线图形
plt.plot(x,y)
#绘制过(2,3)和(6,5)的图形
x1 = np.array([2,6])
y1 = np.array([3,5])
#绘制直线图形
plt.plot(x1,y1)
#已知两点求斜率
x = np.array([2,6])
y = np.array([3,5])
k = (y[1] - y[0])/(x[1] - x[0])
print(k)
利用sklearn线性回归求直线斜率
#导入sklearn中的线性回归模块
from sklearn.linear_model import LinearRegression
#线性回归模型实例化
lr = LinearRegression()
x = np.array([2,6])
y = np.array([3,5])
x = x.reshape(-1,1)#或者:x = np.array([2],[6])
#模型训练
lr.fit(x,y)
print("过两点(2,3)与(6,5)的直线的斜率为:{},截距项为{:.2f}".format(lr.coef_,lr.intercept_))
#模型预测
x_test = np.array([3,4,5]).reshape(-1,1)
y_predict = lr.predict(x_test)
#模型评估--计算R方值
lr.score(x,y)
#计算模型lr的均方差
from sklearn.metrics import mean_squared_error
y = 0.5 * x_test + 2
mean_squared_error(y,y_predict)
#假设有第3个点,坐标为(3,6)
x2 = np.array([[2],[3],[6]])
y2 = np.array([3,6,5])
#绘制三个点的散点图
plt.scatter(x2,y2,s=180,c='r')
#利用线性回归模型拟合一条均方误差最小的直线
lr_2 = LinearRegression()
lr_2.fit(x2,y2)
y2_predict = lr_2.predict(x_test)
#绘制拟合出的直线
z = np.linspace(0,6,100)
z_predict = lr_2.predict(z.reshape(-1,1))
plt.plot(z,z_predict,lw=5,c='g')
plt.scatter(x2,y2,s=180,c='r')
#利用sklearn生成100条具有1个特征的回归分析数据集
from sklearn.datasets import make_regression
x_3,y_3 = make_regression(n_samples=100, n_features=1)
plt.scatter(x_3,y_3)
x_3,y_3 = make_regression(n_samples=100, n_features=1,noise=50,random_state=8)
plt.scatter(x_3,y_3)
from sklearn.datasets import make_regression
#利用sklearn生成100条具有1个特征的回归分析数据集
x_3,y_3 = make_regression(n_samples=100,n_features=1)
plt.scatter(x_3,y_3)
x_3,y_3 = make_regression(n_samples=100,n_features=1,noise=50,bias=100,random_state=8)
plt.scatter(x_3,y_3)
#利用线性回归模型对数据x_3,y_3进行拟合
#模型实例化
reg = LinearRegression()
#模型训练
reg.fit(x_3,y_3)
#绘制回归直线
z = np.linspace(-3,3,200).reshape(-1,1)
plt.scatter(x_3,y_3,c='orange',s=30)
plt.plot(z, reg.predict(z),c='g')
plt.title('Linear Regression')
print('回归直线的斜率是:{:.2f}'.format(reg.coef_[0]))
print('回归直线的截距是:{:.2f}'.format(reg.intercept_))
岭回归的sklearn实现
LASSO回归的sklearn实现