1. 导入包
import numpy as np
import matplotlib.pyplot as plt
from sklearn import linear_model
2. 加载训练数据
# 建立datasets_X和datasets_Y用来存储数据中的房屋尺寸和房屋成交价格。
datasets_X = []
datasets_Y =[]
fr = open('prices.txt','r')
lines = fr.readlines()
for line in lines:
items = line.strip().split(',') # 去除数据文件中的逗号
datasets_X.append(int(items[0]))
datasets_Y.append(int(items[1]))
length = len(datasets_X)
datasets_X = np.array(datasets_X).reshape([length,1]) #将dataset_X转化为数组,并变为二维,以符合线性回归拟合函数输人参数要求。
datasets_Y = np.array(datasets_Y)
3. 建立回归方程
# 以数据datasets_X的最大值和最小值为范围,建立等差数列,方便后续画图。
minX = min(datasets_X)
maxX = max(datasets_X)
X = np.arange(minX,maxX).reshape([-1,1])
linear = linear_model.LinearRegression()
linear.fit(datasets_X, datasets_Y)
调用sklearn.linear_model.LinearRegression()
所需参数:
- fit_intercept :布尔型参数,表示是否计算该模型截距。可选参数。
- normalize : 布尔型参数,若为True,则X在回归前进行归一化。可选参数。默认值为False。
线性回归fit
函数用于拟合输人输出数据,调用形式为linear.fit(X,y, sample weight=None)
:
X:为训练向量;
y:为相对于X的目标向量
sample_weight:分配给各个样本的权重数组,一般不需要使用,可省略。
可以使用以下属性来查看模型的参数:
coef_
属性存储线性回归模型的系数(斜率),它是一个数组,每个特征对应一个系数。
intercept_
属性存储截距。
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X, y)
slope = model.coef_
intercept = model.intercept_
一旦模型被训练,你可以使用 predict(X)
方法来进行预测,其中 X 是要进行预测的特征矩阵。该方法返回预测的目标变量值。
y_pred = model.predict(X)
4. 可视化处理
plt.scatter(datasets_X, datasets_Y, color = 'red')
plt.plot(X,linear.predict(X), color = 'blue')
plt.xlabel('Area')
plt.ylabel('Price')
plt.show()
标签:一元,datasets,linear,fit,plt,参数,线性,model,Sklearn
From: https://www.cnblogs.com/ratillase/p/17809381.html