线性回归
线性回归(Linear Regression)是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。线性回归利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归。
sklearn中的线性回归
sklearn.linear_model.LinearRegression()
参数 | 说明 |
---|---|
fit_intercept | 布尔型参数,表示是否计算该模型截距。可选参数。 |
normalize | 布尔型参数,若为True,则X在回归前进行归一化。可选参数。默认值为False。 |
copy_X | 布尔型参数,若为True,则X将被复制,否则将被覆盖。可选参数,默认值为True。 |
n_jobs | 整型参数,表示用于计算的作业数量;若为-1,则用所有的CPU。可选参数。默认值为1。 |
linear.fit(X,y, sample_weight=None)
参数 | 说明 |
---|---|
X | 训练向量 |
y | 相对于X的目标向量 |
sample_weight | 分配给各个样本的权重数组,一般不需要使用,可省略。 |
房屋价格预测
import numpy as np import matplotlib.pyplot as plt # 线性回归模块 from sklearn import linear_model # 读取数据集 dataset_X = [] # 房屋的尺寸 dataset_Y = [] # 房屋的成交价格 fr = open('Data/prices.txt', 'r') # 打开数据集所在文件 lines = fr.readlines() # 一次读取整个文件 for line in lines: # 逐行进行操作,循环遍历所有数据 items = line.strip().split(',') # 去除文件中的逗号 dataset_X.append(int(items[0])) # 将读取的数据转换为int型,并分别写入dataset_X dataset_Y.append(int(items[1])) # 和dataset_Y length = len(dataset_X) # 求得dataset_X的长度,即为数据的总数 # 将dataset_X转化为数组,并变为二维,以符合线性回归拟合函数输入参数要求 dataset_X = np.array(dataset_X).reshape([length, 1]) dataset_Y = np.array(dataset_Y) # 将dataset_Y转化为数组 minX = min(dataset_X) # 以数据dataset_X的最大值和 maxX = max(dataset_X) # 最小值为范围,建立等差数列,方便后续画图。 X = np.arange(minX, maxX).reshape([-1, 1]) linear = linear_model.LinearRegression() linear.fit(dataset_X, dataset_Y) # 图像中显示 plt.scatter(dataset_X, dataset_Y, color='red') plt.plot(X, linear.predict(X), color='blue') plt.xlabel('Area') plt.ylabel('Price') plt.show()
prices.txt
1000,168 792,184 1260,197 1262,220 1240,228 1170,248 1230,305 1255,256 1194,240 1450,230 1481,202 1475,220 1482,232 1484,460 1512,320 1680,340 1620,240 1720,368 1800,280 4400,710 4212,552 3920,580 3212,585 3151,590 3100,560 2700,285 2612,292 2705,482 2570,462 2442,352 2387,440 2292,462 2308,325 2252,298 2202,352 2157,403 2140,308 4000,795 4200,765 3900,705 3544,420 2980,402 4355,762 3150,392
来源:51CTO
作者:海盐味的可爱多
链接:https://blog.csdn.net/Exupery_/article/details/77113514