在python中,有一个三方库,叫Scikit-learn,简称sklearn,是一个机器学习算法库,包含了常用的机器学习算法,如回归、分类、聚类、支持向量机、随机森林等。在做机器学习的时候,可以直接调用它的API。
官方网站:https://scikit-learn.org/stable/
安装方式:
pip install scikit-learn
这一节我们使用sklearn来实现线性回归算法
实现流程
首先是从库里导出线性模型
from sklearn import linear_model
然后再进行训练
need_model = linear_model.LinearRegression() #使用线性回归算法建立模型
need_model.fit(x,y) #喂入训练数据
最后就是进行预测
need_model.predict(x_)
实战案例
1,准备数据
#准备自变量x,生成数据集,3到6的区间均分间隔30份数
x = np.linspace(3,6,40)
#准备因变量y,这一个关于x的假设函数
y = 3 * x + 2
# 添加代码,扰乱点的分布
x = x + np.random.rand(40)
2,实现算法
#使用matplotlib绘制图像,使用numpy准备数据集
import matplotlib.pyplot as plt
import numpy as np
from sklearn import linear_model
#准备自变量x,生成数据集,3到6的区间均分间隔30份数
x = np.linspace(3,6,40)
#准备因变量y,这一个关于x的假设函数
y = 3 * x + 2
# 添加代码,扰乱点的分布
x = x + np.random.rand(40)
#由于fit 需要传入二维矩阵数据,因此需要处理x,y的数据格式,将每个样本信息单独作为矩阵的一行
x=[[i] for i in x]
y=[[i] for i in y]
# 构建线性回归模型
model=linear_model.LinearRegression()
# 训练模型,"喂入"数据
model.fit(x,y)
# 准备测试数据 x_,这里准备了三组,如下:
x_=[[4],[5],[6]]
# 打印预测结果
y_=model.predict(x_)
print(y_)
#查看w和b的
print("w值为:",model.coef_)
print("b截距值为:",model.intercept_)
#数据集绘制,散点图,图像满足函假设函数图像
plt.scatter(x,y)
plt.show()
得出结果如下:
终端输出为: