赞
踩
- from sklearn import linear_model
- import numpy as np
-
- # 准备数据
- X = np.array([[1], [2], [3]])
- y = np.array([2, 4, 6])
-
- # 创建线性回归模型
- model = linear_model.LinearRegression()
-
- # 拟合模型
- model.fit(X, y)
-
- # 打印模型参数
- print("斜率:", model.coef_)
- print("截距:", model.intercept_)
【解释】:
1.导入线性回归模型
from sklearn import linear_model
2.创建线性回归模型对象
model = linear_model.LinearRegression()
3.拟合模型
model.fit(X, y)
这一行代码使用创建好的线性回归模型对象,对给定的输入特征 X
和对应的目标变量 y
进行拟合。即,模型会尝试学习一个线性关系,以最小化目标变量 y
和模型预测值之间的差异。
X
是输入特征矩阵,包含了用于训练模型的各个样本的特征值。y
是目标变量,包含了每个样本对应的目标值。- # 导入用到的python模块
- import sklearn
- import numpy as np
- from sklearn import datasets, linear_model
- import matplotlib.pyplot as plt
- from sklearn.model_selection import train_test_split
- # 定义训练和测试函数,训练函数输出拟合误差,测试函数返回预测结果与预测得分
- def TrainLinearRegression(X,y):
- model = linear_model.LinearRegression() #线性回归
- model.fit(X, y)
- print('E(|y-wTx|^2) : ' + str(np.mean((model.predict(X) - y) ** 2)))
- return model
-
- def TestModel(X_test, y_test, model):
- score = model.score(X_test, y_test) #基于模型的分数分析
- y_pred = model.predict(X_test)
- print('model test score is : ' + str(score))
- return y_pred, score
-
- # 这里用sklearn自带的公开数据集:波士顿房价数据集
- data, label = datasets.load_boston(return_X_y=True)
- print(data.shape, label.shape)
- # 将数据切分成训练数据和测试用的数据
- X_train, X_test, y_train, y_test = train_test_split(data, label, test_size=0.2)
- print(X_train.shape, y_train.shape, X_test.shape, y_test.shape)
- #训练模型
- LinearModel = TrainLinearRegression(X_train, y_train)
- #模型测试
- y_pred_linear, score_linear = TestModel(X_test, y_test, LinearModel)
-
- #结果可视化
- plt.figure()
- plt.plot(range(30), y_pred_linear[:30], 'bo-', y_test[:30], 'y.--')
- plt.title('Linear model prediction',fontsize='large')
波士顿房屋的数据于1978年开始统计,共506个数据点,涵盖了波士顿不同郊区房屋的14种特征信息。
在这里,选取房屋价格(MEDV)、每个房屋的房间数量(RM)两个变量进行回归,其中房屋价格为目标变量,每个房屋的房间数量为特征变量。将数据导入进来,并进行初步分析。
数据集共506行,每行14列
前13列用来描述房屋的各种信息 ,最后一列为该类房屋价格中位数
准备数据→配置网络→训练网络→模型评估→模型预测
训练网络:
1. 网络正向传播计算网络输出和损失函数。
2. 根据损失函数进行反向误差传播,将网络误差从输出层依次向前传递, 并更新网络中的参数。
3. 重复1~2步骤,直至网络训练误差达到规定的程度或训练轮次达到设定值。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。