LinearRegression模型参数

fit_intercept: 训练的模型是否包含截距,默认为为True,表示包含

LinearRegression模型属性

coef_ :模型训练好后的参数列表
intercept_: 截距值

train_test_split方法参数

数据参数:第一个参数是X,第二个参数为Y;
test_size:进行数据划分的时候,测试集占用的比例
train_size: 进行数据划分的时候,训练集占用的比例
要求test_size和train_size只能给定一个
random_state: 随机数种子,所有的随机数种子如果给定的时候都是为了保证多次操作的结果是完全一致的;默认情况下的随机数种子是当前的时间

StandardScaler模型参数

with_mean:在进行数据转换的过程中,是否将数据转换为均值为0的数据(默认为True,表示是)
with_std:在进行数据转换的过程中,是否将数据转换为标准差为1的数据(默认为True,表示是)

StandardScaler模型的属性

mean_:均值
var_:方差

PolynomialFeatures模型参数

degree:给定进行最高多次次幂的扩展
interaction_only: 默认为False;在多项式扩展过程中,
是否考虑同一个特征的多次相乘,是否扩展x1^2或者
x1^2*x2;默认为False,表示扩展;True表示不进行扩展
include_bias:默认为True,是否在多项式扩展的过程中,加入一个常数项,常数项值为1.默认加入

02_家庭用电预测:线性回归算法(时间与电压的多项式关系)
具体过程如下:

import sklearn
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import StandardScaler
from sklearn.preprocessing import PolynomialFeatures  #特征构造
from sklearn.pipeline import Pipelineimport numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
%matplotlib inline
%config InlineBackend.figure_format = 'svg'
import pandas as pd
import time
## 创建一个时间字符串格式化字符串
def date_format(dt):import timet = time.strptime(' '.join(dt), '%d/%m/%Y %H:%M:%S')return (t.tm_year, t.tm_mon, t.tm_mday, t.tm_hour, t.tm_min, t.tm_sec)
## 设置字符集,防止中文乱码
mpl.rcParams['font.sans-serif']=[u'simHei']
mpl.rcParams['axes.unicode_minus']=False
# 加载数据
path = 'datas\household_power_consumption_200.txt' ## 200行数据
path = 'datas\household_power_consumption_1000.txt' ## 1000行数据
df = pd.read_csv(path, sep=';', low_memory=False)# 日期、时间、有功功率、无功功率、电压、电流、厨房用电功率、洗衣服用电功率、热水器用电功率
names2=df.columns
names=['Date', 'Time', 'Global_active_power', 'Global_reactive_power', 'Voltage', 'Global_intensity', 'Sub_metering_1', 'Sub_metering_2', 'Sub_metering_3']# 异常数据处理(异常数据过滤)
new_df = df.replace('?', np.nan)
datas = new_df.dropna(axis=0,how = 'any') # 只要有数据为空,就进行删除操作
## 时间和电压之间的关系(Linear)
# 获取x和y变量, 并将时间转换为数值型连续变量
X = datas[names[0:2]]
X = X.apply(lambda x: pd.Series(date_format(x)), axis=1)
Y = datas[names[4]].values# 对数据集进行测试集合训练集划分
X_train,X_test,Y_train,Y_test = train_test_split(X, Y, test_size=0.2, random_state=0)# 数据标准化
ss = StandardScaler()
X_train = ss.fit_transform(X_train) # 训练并转换
X_test = ss.transform(X_test) ## 直接使用在模型构建数据上进行一个数据标准化操作 # 模型训练
lr = LinearRegression()
lr.fit(X_train, Y_train) ## 训练模型# 模型校验
y_predict = lr.predict(X_test) ## 预测结果# 模型效果
print("准确率:",lr.score(X_test, Y_test))## 预测值和实际值画图比较
t=np.arange(len(X_test))
plt.figure(facecolor='w')
plt.plot(t, Y_test, 'r-', linewidth=2, label=u'真实值')
plt.plot(t, y_predict, 'g-', linewidth=2, label=u'预测值')
plt.legend(loc = 'lower right')
plt.title(u"线性回归预测时间和功率之间的关系", fontsize=20)
plt.grid(b=True)#网格
plt.show()

[234.84 233.63 233.29 233.74 235.68 235.02 235.09 235.22 233.99 233.86
232.86 232.78 232.99 232.91 235.24 237.14 236.73 237.06 237.13 235.84
232.69 230.98 232.21 234.19 234.96 236.66 235.84 235.6 235.49 235.28
235.06 234.17 233.77 233.62 234.68 236.94 237.52 238.2 238.28 236.93
235.01 232.93 232.12 231.85 232.25 234.66 236.2 237.07 235.78 237.43
237.26 234.25 234.2 234.31 233.29 235.61 235.25 236.04 235.51 235.68
235.2 233.74 233.84 233.79 235.5 235.84 236.15 235.81 235.41 234.82
233.76 232.48 233.54 232.32 234.02 234.76 234.67 235.27 235.12 235.8
234.81 234.38 234.2 233.98 234.99 234.67 233.92 233.51 233.44 233.64
232.39 232.25 232.32 232.79 232.09 231.96 231.99 232.36 232.71 232.01
232.78 233.08 233.69 234.44 234.6 235.12 234.28 234.19 234.69 234.26
233.3 233.43 233.45 233.91 234.43 234.34 234.58 234.02 234.29 234.36
232.64 232.96 233.47 234.98 234.34 233.92 233.94 233.72 233.2 233.1
232.29 232.45 231.97 232.42 233.38 232.69 233.2 233.26 232.84 232.39
232.14 231.57 231.66 232.22 232.81 233.77 232.82 233.22 232.84 232.75
232.64 232.2 232.2 232.58 232.4 232.66 232.43 233.02 232.8 232.79
231.98 232.88 232.52 232.87 233.78 233.69 234.04 233.93 233.62 233.64
233.26 233.9 233.68 232.83 233. 233.08 232.69 232.91 232.87 232.42
232.31 232.79 233.05 234.57 234.79 234.6 234.54 234.6 233.77 233.5
233.27 233.37 232.64 231.95 232.21 232.5 233.63 234.43 234.63 235.05
234.96 235.77 236.76 234.59 235.13 235.14 235.75 235.69 236.86 236.72
236.05 237.54 237.44 237. 235.55 236.51 236.76 237.11 238.72 237.66
238.2 237.46 237.36 238.13 237.74 237.26 237.69 236.44 236.23 237.7
235.73 236.51 237.11 237.06 238.63 237.58 236.87 236.94 238.17 237.42
236.91 236.24 237.17 238.59 237.43 237.73 237.2 238.41 236.6 236.12
236.54 238.48 237.27 237.06 236.49 236.28 236.89 236.64 236.58 236.83
237.75 239.69 238.95 236.46 235.98 235.85 238.19 236.28 236.4 236.46
236.28 237.33 237.09 236.39 236.75 235.73 236.03 237.68 235.99 236.26
236.03 235.7 236.08 237.31 236.14 236.61 236.93 237.97 238.02 236.06
234.45 235.31 237.1 238.68 238.76 238.59 238.87 238.97 239.93 239.05
238.46 239.68 240.72 240.87 239.71 239.89 239.48 241.64 240.07 239.77
240.05 239.75 240.58 239.2 238.84 238.39 238.39 241.06 240.89 239.46
239.27 239.57 239.99 242.04 239.89 239.91 240.02 239.97 241.27 238.64
237.47 238.05 239.03 240.28 241.36 239.42 238.9 239.13 239.37 241.58
240.11 238.73 239.52 239.74 240.96 241.64 240.05 240.07 239.99 239.74
241.17 242.39 240.41 240.5 240.55 240.97 241.58 240.21 239.98 240.65
241.68 240.7 240.7 240.11 241.71 240.13 240.24 240.53 241.36 241.02
240.06 240.09 239.49 242.16 240.95 241.74 241.18 243.73 241.48 241.13
240.96 242.94 240.74 241.23 241.79 241.83 238.71 237.99 238.89 240.26
240.88 240.69 239.43 239.81 241.27 241.63 242.73 242.2 240.14 239.97
240.39 240.59 241.14 241.62 243.75 242.09 239.45 239.44 238.71 236.95
237.55 238.48 239.79 239.47 238.51 239.03 238.37 238.38 240.56 239.84
239.11 239.99 240.64 239.45 241.4 243.68 244.03 242.07 241.86 241.7
240. 242. 242.58 242.3 241.86 240.76 241.52 241.88 243.65 242.62
241.43 241.18 240.82 240.78 242.94 243.84 243.11 241.98 242.01 241.38
240.91 242.13 241.5 240.45 240.35 240.65 242.35 243.4 240.69 239.13
238.08 237.38 241.35 240.95 239.61 239.49 239.65 240.39 240.31 238.15
237.91 237.44 238.52 239.55 238.27 237.37 237.17 237.92 239.82 241.18
239.84 239.04 240.29 239.19 240.8 241.61 240.11 239.35 240.08 242.07
241.54 239.84 240.36 239.79 239.55 242.21 241.92 240.42 241.78 243.31
242.92 241.8 240.29 240.61 242.14 243.88 241.49 240.34 239.59 240.38
242.43 243.55 242.33 241.86 242.14 241.97 242.14 244.33 245.86 244.84
244.83 245.8 247.65 247.49 244.73 244.9 244.77 247.47 248.48 247.01
246.12 246.32 248.01 248.2 245.61 245.29 243.75 246.17 246.94 245.35
244.97 244.97 246.17 247.3 244.96 244.2 243.93 244.35 246.64 246.7
244.7 245.05 246.52 248.94 247.33 245.39 245.71 246.1 249.37 249.07
247.31 247.26 245.95 246.16 244.51 243.91 243.68 244.57 245.98 244.32
244.51 244.84 247.15 246.59 244.52 243.43 244.06 245.05 247.12 246.86
245.41 245.27 245.79 247.11 244.7 243.24 243.46 243.57 246.19 247.17
245.69 245.08 243.7 243.92 245.54 244.88 243.27 242.65 243.29 243.73
245.29 245.38 243.84 242.8 242.52 244.9 244.81 243.8 244.03 244.73
244.66 246.4 245.5 243.49 243.08 243.17 244.44 244.05 242.72 243.81
244.12 245.64 245.18 243.7 243.41 243.42 245.53 246.54 244.63 244.59
244.42 244.64 245.31 243.78 242.57 243.16 243.18 245.02 244.9 242.77
242.47 242.14 245.15 245.86 243.47 243.36 243.54 245.68 245.69 243.21
243.49 243.2 244.12 246.45 245.71 243.86 243.5 243.62 243.73 245.17
245.13 243.67 244. 243.6 242.93 245.08 245.69 242.83 242.92 243.03
242.95 245.6 245.94 244.16 243.04 242.49 242.22 244.07 244.55 242.89
242.65 242.63 243.15 245.1 244.15 241.83 241.53 242.06 242.39 245.95
246.55 243.76 243.58 242.95 242.7 244.27 243.14 242.01 242.73 242.7
243.77 244.66 243.62 241.41 240.91 240.82 240.23 242.12 242.93 242.13
242.49 243.69 245.93 246.45 244.33 242.87 243.06 243.67 244.05 246.26
246.23 245.16 244.25 243.19 243.77 244.73 243.03 242.67 242.87 243.03
244.96 244.5 242.56 242.61 242.19 243.74 244.4 242.39 242.51 242.61
243.82 243.55 242.22 242.6 243.74 247.08 244.99 245.62 245.71 246.97
244.63 244.72 245.14 246.58 244.28 243.58 244.36 245.77 243.95 243.01
245.34 246. 243.7 243.53 243.92 244.99 243.06 241.95 242.35 244.82
243.99 242.91 242.84 243.09 242.41 242.63 244.86 245.05 243.36 243.66
244.02 243.85 243.73 244.93 244.83 242.05 241.89 242.62 244.76 244.4
245.39 245.94 245.84 244.5 244.02 244.13 244.35 244.3 244.14 244.49
244.14 243.94 243.58 244.64 244.26 244.46 245.54 246.01 245.94 245.22
244.45 243.96 243.39 244.35 244.26 244.62 244.67 244.23 244.87 243.64
242.49 242.25 242.08 241.89 242.08 242.57 243.04 242.59 242.55 242.8
240.97 239.16 239.21 239.79 239.78 239.92 240.03 239.9 241.23 241.35
241.01 241.57 241.27 240.92 240.04 239.39 238.93 239.46 242.27 242.22
242.55 242.88 242.18 242.16 241.97 241.71 241.53 241.3 244.31 244.83
243.37 242.04 242.24 242.1 241.56 241.57 241.33 243.28 244.95 244.83
242.85 242.06 241.04 240.31 240.95 240.67 240.9 240.97 243.21 243.6
241.99 241.62 241.37 241.44 240.62 241.27 243.88 243.68 241.11 240.67
241.1 241.84 241.48 240.97 239.37 241.48 241.86 241.11 241.06 241.06
242.36 242.66 242.06 242.4 244.02 243.78 241.39 241.03 240.69 240.11
239.68 240.17 240.34 242.65 243.51 243.08 241.42 241.94 242.68 241.02
241.32 240.08 241.7 242.47 241.27 241.03 241.14 240.7 239.73 238.57
238.51 239.96 240.25 239.1 239.27 238.94 239.09 239.63 237.9 235.57
235.35 235.15 235.22 235.32 237.44 237.25 236.34 236.82 240.88 239.37
239.17 238.36 238.96 238.59 238.48 240. 240.77 239.72 239.47 239.45
239.23 239.37 239.18 239.87 240.71 239.52 237.51 237.44 237.39 237.7
238.73 239.79 240.85 240.73 238.59 238.58 239.21 239.29 238.64 239.04
241.21 241.1 240.92 239.84 239.14 238.59 238.76 239.03 239.26 241.82
242.48 240.12 238.67 238.04 238.09 238.13 238.03 240.26 240.15 237.55]
准确率: 0.48506578175142084

## 时间和电压之间的关系(Linear-多项式)
# Pipeline:管道的意思,讲多个操作合并成为一个操作
# Pipleline总可以给定多个不同的操作,给定每个不同操作的名称即可,执行的时候,按照从前到后的顺序执行
# Pipleline对象在执行的过程中,当调用某个方法的时候,会调用对应过程的对应对象的对应方法
# eg:在下面这个案例中,调用了fit方法,
# 那么对数据调用第一步操作:PolynomialFeatures的fit_transform方法对数据进行转换并构建模型
# 然后对转换之后的数据调用第二步操作: LinearRegression的fit方法构建模型
# eg: 在下面这个案例中,调用了predict方法,
# 那么对数据调用第一步操作:PolynomialFeatures的transform方法对数据进行转换
# 然后对转换之后的数据调用第二步操作: LinearRegression的predict方法进行预测
models = [Pipeline([('Poly', PolynomialFeatures()), # 给定进行多项式扩展操作, 第一个操作:多项式扩展('Linear', LinearRegression(fit_intercept=False)) # 第二个操作,线性回归])
]
model = models[0]
# 获取x和y变量, 并将时间转换为数值型连续变量
X = datas[names[0:2]]
X = X.apply(lambda x: pd.Series(date_format(x)), axis=1)
Y = datas[names[4]]# 对数据集进行测试集合训练集划分
X_train,X_test,Y_train,Y_test = train_test_split(X, Y, test_size=0.2, random_state=0)# 数据标准化
ss = StandardScaler()
X_train = ss.fit_transform(X_train) # 训练并转换
X_test = ss.transform(X_test) ## 直接使用在模型构建数据上进行一个数据标准化操作 # 模型训练
t=np.arange(len(X_test))
N = 5
d_pool = np.arange(1,N,1) # 阶
m = d_pool.size
clrs = [] # 颜色
for c in np.linspace(16711680, 255, m):clrs.append('#%06x' % int(c))
line_width = 3plt.figure(figsize=(12,6), facecolor='w')#创建一个绘图窗口,设置大小,设置颜色
for i,d in enumerate(d_pool):plt.subplot(N-1,1,i+1)plt.plot(t, Y_test, 'r-', label=u'真实值', ms=10, zorder=N)### 设置管道对象中的参数值,Poly是在管道对象中定义的操作名称, 后面跟参数名称;中间是两个下划线model.set_params(Poly__degree=d) ## 设置多项式的阶乘model.fit(X_train, Y_train) # 模型训练# Linear是管道中定义的操作名称# 获取线性回归算法模型对象lin = model.get_params('Linear')['Linear']output = u'%d阶,系数为:' % d# 判断lin对象中是否有对应的属性if hasattr(lin, 'alpha_'):idx = output.find(u'系数')output = output[:idx] + (u'alpha=%.6f, ' % lin.alpha_) + output[idx:]if hasattr(lin, 'l1_ratio_'):idx = output.find(u'系数')output = output[:idx] + (u'l1_ratio=%.6f, ' % lin.l1_ratio_) + output[idx:]print (output, lin.coef_.ravel())# 模型结果预测y_hat = model.predict(X_test)# 计算评估值s = model.score(X_test, Y_test)# 画图z = N - 1 if (d == 2) else 0label = u'%d阶, 准确率=%.3f' % (d,s)plt.plot(t, y_hat, color=clrs[i], lw=line_width, alpha=0.75, label=label, zorder=z)plt.legend(loc = 'upper left')plt.grid(True)plt.ylabel(u'%d阶结果' % d, fontsize=12)## 预测值和实际值画图比较
plt.suptitle(u"线性回归预测时间和功率之间的多项式关系", fontsize=20)
plt.grid(b=True)
plt.show()

1阶,系数为: [ 2.39926650e+02 0.00000000e+00 -1.11022302e-16 3.97781449e+00
8.73334650e-01 1.70647992e-01 0.00000000e+00]
2阶,系数为: [ 1.23998300e+02 1.42108547e-14 -1.42108547e-14 5.34497071e+01
2.95068077e+00 2.69407641e-01 -7.10542736e-15 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 1.02461452e+02 -2.50100464e+01
-5.18469319e-01 0.00000000e+00 -1.02427364e+01 -4.65982219e-01
0.00000000e+00 -3.55472266e-02 0.00000000e+00 0.00000000e+00]
3阶,系数为: [-3.48923835e+11 1.08969903e+10 5.53138831e+11 -1.46880239e+12
-8.25259762e+10 3.19287036e+10 1.98804398e+11 1.70194093e+09
8.85656970e+10 -1.54916033e+10 -7.53209551e+10 8.67554136e+10
2.60556376e+10 1.63933079e+10 -3.57894606e+10 5.74033329e+10
-3.94728071e+09 2.44140625e-04 9.97408775e+11 3.32527437e+10
-1.28652461e+10 0.00000000e+00 1.09942627e+00 3.41613770e-01
0.00000000e+00 9.15527344e-03 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
1.60939660e+12 8.25259762e+10 -3.19287036e+10 0.00000000e+00
-6.60848999e+00 -6.98020935e-01 0.00000000e+00 -1.81808472e-01
0.00000000e+00 0.00000000e+00 4.41369629e+00 2.45346069e-01
0.00000000e+00 -2.66296387e-01 0.00000000e+00 0.00000000e+00
-2.43545532e-01 0.00000000e+00 0.00000000e+00 0.00000000e+00]
4阶,系数为: [ 8.94311347e+12 1.08950840e+13 2.15539772e+13 -2.54105895e+13
1.18823092e+13 1.69830486e+12 -4.04838365e+11 -2.19672148e+12
7.79620207e+12 -2.77613950e+12 4.66773823e+12 -5.36694929e+11
-8.94229146e+11 4.20739420e+11 -6.12116344e+12 -9.77589409e+12
4.30322625e+11 5.18240148e+10 7.53437452e+12 -1.21924723e+13
3.54983696e+12 -2.52663933e+11 8.10039348e+12 7.06623669e+10
-9.13497510e+10 1.85291208e+12 -2.13770735e+09 -1.96032217e+08
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
1.87082500e+13 -8.89870241e+12 -3.40439775e+12 0.00000000e+00
-3.26394573e+12 -2.84724602e+10 0.00000000e+00 -7.46606258e+11
0.00000000e+00 0.00000000e+00 -1.54370117e+01 -2.19799805e+00
0.00000000e+00 -5.98632812e-01 0.00000000e+00 0.00000000e+00
-2.48535156e-01 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 -7.69061497e+12
7.40465397e+12 -4.23414630e+12 0.00000000e+00 -8.10039348e+12
-7.06623669e+10 0.00000000e+00 -1.85291208e+12 0.00000000e+00
0.00000000e+00 1.18496094e+01 -6.30957031e+00 0.00000000e+00
-1.14746094e-01 0.00000000e+00 0.00000000e+00 1.61132812e-02
0.00000000e+00 0.00000000e+00 0.00000000e+00 -4.02050781e+00
-3.45654297e+00 0.00000000e+00 -3.59375000e-01 0.00000000e+00
0.00000000e+00 1.92382812e-01 0.00000000e+00 0.00000000e+00
0.00000000e+00 -2.53906250e-02 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00]

# 获取x和y变量, 并将时间转换为数值型连续变量
X = datas[names[0:2]]
X = X.apply(lambda x: pd.Series(date_format(x)), axis=1)
Y = datas[names[4]]# 对数据集进行测试集合训练集划分
X_train,X_test,Y_train,Y_test = train_test_split(X, Y, test_size=0.2, random_state=0)# 数据标准化, 第一步:进行标准化操作
ss = StandardScaler()
X_train = ss.fit_transform(X_train) # 训练并转换
X_test = ss.transform(X_test) ## 直接使用在模型构建数据上进行一个数据标准化操作 # 多项式扩展,第二步:进行多项式扩展
poly = PolynomialFeatures(degree=3, interaction_only=True)
train1 = poly.fit_transform(X_train)
test1 = poly.transform(X_test)# 模型训练, 第三步:进行模型训练
linear = LinearRegression(fit_intercept=False)
linear.fit(train1, Y_train)
print(linear.score(test1, Y_test))
print(linear.coef_)
print(linear.intercept_)

线性回归多项式拟合——家庭用电预测相关推荐

  1. 如何建立Multi-Step(多步预测)的LSTM时间序列模型(以对家庭用电预测为例)

    译自How to Develop LSTM Models for Multi-Step Time Series Forecasting of Household Power Consumption~ ...

  2. MATLAB 线性回归多项式拟合+预测区间、置信区间的绘制

    MATLAB 线性回归多项式拟合+预测区间.置信区间的绘制 一.前言 二.多项式拟合polyfit 1.语法 2.示例 三.区间绘制 四.整体源码 五.思考 六.参考博客 一.前言 现有一组数据:x. ...

  3. 01_家庭用电预测:线性回归算法(时间与功率功率与电流之间的关系)

    # 引入所需要的全部包 from sklearn.model_selection import train_test_split from sklearn.linear_model import Li ...

  4. 回归算法实例一:家庭用电预测——时间与功率、功率与电流、时间与电压之间的关系

    安装numpy:pip install --index https://pypi.mirrors.ustc.edu.cn/simple/ numpy 安装scipy:pip install --ind ...

  5. 线性回归入门案例 家庭用电量预测

    本博客是线性回归的入门案例,仅用到一阶线性回归 代码中用到的数据集下载地址 [link] https://pan.baidu.com/s/12wSIOVMQ3zS3jK0FcwkTSw[ python ...

  6. LSTM模型对家庭用电进行多步时间序列预测

    随着智能电表的兴起和太阳能电池板等发电技术的广泛应用,有大量可用的用电数据.这些数据代表了一系列与电力相关的多元时间序列,进而可以用来建模甚至预测未来的用电量.与其他机器学习算法不同,长短时记忆递归神 ...

  7. 非线性函数模型(多项式拟合)预测土壤侵蚀模数

    某地区各地理单元的土壤侵蚀模数(x)与土壤含氮量1(y)的数据见(实验1数据中的"题目3"sheet). 画出二者之间的散点图并确定是什么样的相关形式: 试用一个非线性函数模型拟合 ...

  8. 开发和设计实现LSTM模型用于家庭用电的多步时间序列预测

    鉴于智能电表的兴起以及太阳能电池板等发电技术的广泛采用,有大量的用电数据可供选择.该数据代表了多变量时间序列的功率相关变量,这些变量又可用于建模甚至预测未来的电力消耗. 与其他机器学习算法不同,长期短 ...

  9. java 多项式拟合最多的项数_机器学习(1)--线性回归和多项式拟合

    机器学习(1)--线性回归和多项式拟合 机器学习(2)逻辑回归 (数学推导及代码实现) 机器学习(3)softmax实现Fashion-MNIST分类 一 线性回归 线性回归,顾名思义是利用线性模型对 ...

最新文章

  1. mysql分组和where条件查询_【MySQL】:分组查询where和having
  2. mysql 集合 思想_SQL 编程思想:一切皆关系
  3. 典型用户分析及用户场景分析
  4. 再学 GDI+[98]: TGPImage(18) - 获取 GDI+ 图像格式对应的 GUID
  5. 关于PaddleNLP如何加载训练好的模型进行NER
  6. 计算机软考网络管理员题,2020年计算机软考网络管理员考前测试题及答案
  7. java键盘输入一个数_Java如何实现从键盘输入一个数?
  8. 设计灵感|如果你喜欢多彩的配色搭配!看这里!
  9. 编程猫获新一轮 3 亿融资:做好少儿编程教育基础设施!
  10. 目前M院M师的教学乱象
  11. matlab与或非语句,Matlab与或非等逻辑运算符使用教程分享
  12. 仿世纪佳缘登录注册页面
  13. Ubuntu14.10 更新源
  14. 利用大数据 勾画虚开企业脸谱
  15. 从源码解析-Android系统启动流程概述 init进程zygote进程SystemServer进程启动流程
  16. procast2021学习笔记
  17. mac Robot Framework installation not found
  18. windows下 编写的Qt程序连接远程MySQL数据库
  19. dataBinding 理解
  20. redux及react-redux

热门文章

  1. 面试第二家 图灵数据 上海浦东软件园
  2. numpy百题斩(二)
  3. Fortran的堆栈溢出解决方法
  4. 1688API接口:item_get - 获得1688商品详情
  5. 年终员工答谢宴会PPT模板
  6. 性能优化08_电量优化:监控电量状态
  7. 黑马教程深入学习C++(持续更新中)
  8. Advanced Duplicate Cleane‪r‬ for Mac(高级重复文件清理软件)
  9. P2251-03量产失败修复成功DT111
  10. SuperVideo - H5视频播放插件