linear----------解决欠拟合示例

import warnings

import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression, Lasso, Ridge, ElasticNet
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import PolynomialFeatures
import matplotlib.pyplot as plt
import matplotlib.pylab as mpl
import sys
import joblib

warnings.filterwarnings("ignore")

# 画图出现中文符
mpl.rcParams['font.sans-serif'] = [u'simHei']
mpl.rcParams['axes.unicode_minus'] = False

# 加载数据
data = pd.read_csv('../data/boston_housing.data', sep='\s+', header=None)

# 获取特征属性X和目标属性Y
X = data.iloc[:, :-1]
Y = data.iloc[:, -1]

# 拆分数据集为训练集和测试集; random_state:随机数种子控制训练集,测试集的固定划分
x_train, x_test, y_train, y_test = train_test_split(X, Y, test_size=0.3, random_state=20)

# 构建特征工程,改变欠拟合
"""
PolynomialFeatures  ####多项式扩展
degree=2,扩展阶数
interaction_only = False, 是否只保留交互项
include_bias=True, 是否需要偏置项
"""
print(x_train.shape)
print(x_test.shape)

# degree:代表扩展阶数
poly = PolynomialFeatures(degree=3, interaction_only=True, include_bias=False)
"""
fit:等价于算法流程当中的训练过程
fit_transform: 相当于fit()+transform()
interaction_only:保留交互项例如:x1*x2
transform:对输入的数据进行转换输出
"""
# 已经扩展后的属性
x_train_poly = poly.fit_transform(x_train)  #
x_test_poly = poly.transform(x_test)
print(x_train_poly.shape)
print(x_test_poly.shape)

# 构建模型
# linear = LinearRegression(fit_intercept=True)

# lasso回归:是线性回归+L1正则; alpha:代表正则化项的占比; fit_intercept: 一个布尔值,制定是否需要计算b值,
# lasso = Lasso(alpha=0.1, fit_intercept=True)
# Ridge回归:是线性回归+L2正则; alpha:代表正则化项的占比; fit_intercept: 一个布尔值,制定是否需要计算b值
ridge = Ridge(alpha=100000, fit_intercept=True)

# 模型训练
# lasso.fit(x_train_poly, y_train)
ridge.fit(x_train_poly, y_train)
print('-' * 100)
# print(lasso.coef_)
print(ridge.coef_)
print('\n')
# print(lasso.intercept_)
print(ridge.intercept_)

# linear.fit(x_train_poly, y_train)
# print(linear.coef_)
# print(linear.intercept_)



# 预测
# y_test_hat = lasso.predict(x_test_poly)
y_test_hat = ridge.predict(x_test_poly)
print('-' * 100)
# linear.predict()

# 打分
# print(lasso.score(x_train_poly, y_train))
# print(lasso.score(x_test_poly, y_test))

print(ridge.score(x_train_poly, y_train))
print(ridge.score(x_test_poly, y_test))

# 画图
plt.plot(range(len(x_test)), y_test, 'r', linewidth=2, label=u'测试集的原始值')
plt.plot(range(len(x_test)), y_test_hat, 'b', linewidth=2, label=u'测试集的预测值')
plt.legend(loc='upper right')
# plt.save()
plt.show()

E:\myprogram\anaconda\python.exe E:xx/线性回归操作/改变波士顿房屋预测价格欠拟合现象.py
(354, 13)
(152, 13)
(354, 377)
(152, 377)
----------------------------------------------------------------------------------------------------
[-8.07836071e-06 -1.49786519e-06  1.34028299e-06  1.36669956e-06
  1.79202122e-06  4.55505033e-05 -9.47666631e-06 -1.43511592e-05
  1.78642530e-05 -2.22772117e-04 -3.19801945e-05  1.05505851e-04
 -1.69046321e-05 -9.98139701e-07 -4.09440898e-05 -1.47457843e-06
 -5.94678746e-06  6.96108138e-06 -3.69084020e-04 -2.22214337e-05
 -5.24475244e-05 -1.55684981e-03 -6.49190462e-05 -2.00262989e-03
 -2.49660883e-04 -1.38185654e-04  9.80692370e-06 -1.09189430e-06
  9.39914267e-05  1.06630182e-03 -2.36123860e-05  1.62593467e-04
  6.47843457e-04 -2.12750319e-04 -1.58246222e-03 -1.05926764e-04
 -8.57382544e-06  1.98935443e-05  2.11159869e-04  4.34378966e-05
 -9.85954329e-05  6.55378427e-05  5.08828075e-04 -5.00840652e-06
  1.13643610e-03  1.54275922e-04 -2.75172979e-06  5.16007903e-06
 -3.43318534e-06  1.31683729e-05 -4.73676656e-06 -3.30820267e-05
  4.43929104e-06  4.22281336e-04  4.06802422e-06  3.14459371e-05
  1.16779401e-04  2.63412420e-06  6.41034485e-06  4.24675216e-04
  5.66762597e-06  2.34710287e-04  2.10381129e-05  1.34626609e-03
 -2.65381330e-05  3.07944091e-04  7.17118283e-03  2.50932723e-04
  1.23841216e-02  1.05576212e-04 -7.73644900e-04  7.19852291e-04
 -8.54283200e-04 -7.01036295e-04  1.65276074e-03  1.91408948e-03
 -1.37296216e-05 -4.05770249e-03 -1.84064201e-04 -1.61370684e-03
 -2.46430600e-04  2.35166477e-03  7.32314787e-05  5.28437782e-03
  1.55167320e-04 -4.31666648e-03 -3.28488954e-04 -1.02217343e-03
 -9.70015973e-03 -3.86099324e-04 -6.16091871e-04 -2.83097521e-04
 -4.17470442e-05 -1.86516239e-05  2.65659131e-04 -2.10295344e-03
  3.11375253e-04 -1.10646776e-04  6.05801543e-03  8.04419054e-05
 -3.84145911e-03 -5.05920334e-04  5.69264360e-05 -3.67228035e-05
  5.97985813e-04  1.29458697e-03 -8.88419832e-05  1.30764148e-04
  2.28199478e-03 -9.56349648e-05 -1.91520633e-03 -2.32408403e-03
 -2.90517109e-06 -6.97312517e-05 -5.54797939e-06  2.87816982e-05
  7.51831977e-05  1.56087820e-03 -1.67798879e-05 -1.98710539e-03
 -1.30825619e-04  3.22125312e-05 -7.06738640e-04  8.52865624e-05
 -1.58343213e-04 -3.14192097e-03 -9.29926164e-05  1.58742903e-03
 -2.12047920e-04 -8.00500620e-03  4.90074007e-04 -6.66367930e-04
  2.22190108e-03  2.84481213e-04 -1.00610028e-03  8.58236555e-04
 -9.00645260e-03 -7.29151794e-05  3.77162405e-05 -2.45833586e-04
 -1.00395916e-05  4.67130972e-04 -3.48650921e-05  1.43502510e-04
  7.29502488e-05  5.88307485e-04 -4.88078238e-04 -4.30831855e-06
 -5.32096860e-04 -6.64988056e-04  4.11101669e-03 -2.44167219e-03
  2.53286106e-05  2.58799758e-05  2.05206109e-03 -3.37254026e-03
 -5.47496629e-05 -9.37720153e-04  1.19996026e-04 -2.23243373e-03
 -1.36919231e-04 -4.64791022e-04  7.00646290e-04 -1.02784276e-04
 -4.05556240e-03  2.99416208e-04 -7.35258640e-04 -5.56671704e-07
  3.69396165e-05 -7.21725801e-04  1.25713104e-04  5.46295696e-04
 -1.47252790e-03 -8.19399632e-04  9.70153126e-04 -1.19272849e-03
  1.15653536e-04  3.22880314e-03 -2.23082172e-04  2.76102822e-04
  1.43593339e-03 -3.04506404e-04 -1.42936415e-03 -8.99310769e-05
  1.05196011e-03 -3.62429308e-03  2.91845822e-03 -2.58290408e-05
 -1.50809257e-03  1.61597377e-04 -3.73947007e-03  2.75872462e-04
 -1.69672149e-04  3.22613058e-05 -8.95907727e-05 -4.21060786e-05
 -1.04525604e-04  1.39109617e-03 -9.05541043e-05  1.17723625e-03
  3.80590770e-05  2.52266729e-04 -4.63808004e-04  1.89836264e-03
  2.26540153e-04 -2.38773392e-03  3.36197393e-05  7.96374916e-07
 -6.65298957e-05  7.63053365e-06 -9.27753089e-04  1.92121771e-04
 -6.08118029e-05 -9.12048797e-05  7.30280540e-04  9.93845506e-05
  4.16893531e-05  6.73197307e-05  2.05758842e-05 -6.69262536e-04
 -3.00462573e-04  1.17151300e-04  1.86413717e-04  2.23343790e-04
 -6.89002142e-05  4.03695083e-03  2.38290094e-04 -1.00717705e-03
  4.07615987e-04  5.91315147e-03  1.43259624e-04 -2.95522028e-04
 -7.74657294e-04 -8.31739307e-04 -5.18373927e-04 -4.31420431e-04
 -1.23023401e-03 -5.05160348e-04  2.39679292e-05 -5.66012076e-05
 -6.46695878e-05 -5.38639860e-04  9.32970251e-04  1.15843900e-03
 -8.16566285e-04 -6.95068512e-04  3.79805005e-03 -1.75697404e-03
  6.26840602e-05  1.11742671e-03  1.23455083e-05 -2.79347011e-04
  3.50399700e-05 -2.26346616e-04 -1.34885804e-04  5.67729836e-03
 -1.10538323e-04 -1.89184239e-05 -2.90817768e-04  6.99105362e-07
 -1.48605252e-05 -1.19638797e-03 -4.63214766e-05 -1.07355891e-03
 -4.89610310e-05 -7.61929417e-05  7.52509500e-05 -5.42181972e-04
 -8.06074620e-03 -2.58489692e-04  1.32328737e-03 -2.96401788e-05
  2.92546745e-04 -5.12434914e-04  5.19216773e-04 -1.15962447e-04
 -4.05172581e-04 -2.38024991e-04  7.54451330e-05  3.72747869e-03
  9.56969061e-05  4.16496139e-03  1.61904475e-04  1.18541652e-03
 -1.22212358e-04 -2.02371634e-03  7.47259645e-04 -1.55828397e-03
  1.32947145e-04 -4.31299483e-04 -1.62983469e-04  6.95430302e-04
  6.31578472e-04  9.83067537e-04  5.81334738e-05  1.14352415e-04
  5.19005580e-03  2.10010865e-04  5.20944490e-03  3.24576589e-04
  1.31953696e-03 -1.70854003e-03 -2.13514547e-03  7.51658551e-04
 -6.98066965e-07  2.54665234e-03  2.79724882e-04  6.22250425e-03
  6.13582670e-05  1.77676322e-03  2.13040674e-04 -2.64480916e-03
 -9.24875263e-05 -1.20457706e-03 -2.73885283e-04  3.11123680e-03
  7.18843227e-05  2.66917423e-03 -4.28403328e-03  8.97016733e-05
  2.32140406e-03  3.39920051e-04  5.22342054e-04  1.12558302e-04
 -4.44469114e-03  7.78362554e-05 -4.02729478e-03  1.68558886e-03
  4.54809375e-03 -6.39096128e-04 -3.38847643e-03  5.24030834e-04
  9.26213694e-05  1.85575864e-03 -6.77395616e-04  2.22396462e-03
 -1.27435539e-03 -1.71562693e-05 -1.89575871e-04  1.81018468e-03
  3.13105498e-04 -1.51975235e-04 -8.31783149e-04 -3.92063940e-04
  4.42171060e-03  1.27218142e-04 -9.73690202e-04  9.60285475e-06
  3.52389813e-04  1.03812694e-04 -3.11864018e-03  1.36558988e-04
 -5.52275580e-06  1.46430095e-04 -7.46973089e-05 -1.05896536e-03
  5.39654919e-05 -8.90727711e-04  2.03045430e-04  6.71911630e-04
  1.64706695e-03 -1.24236755e-03 -1.40077256e-07  1.86795780e-03
  7.30634969e-04 -3.15267457e-03 -1.01794546e-03  1.79165725e-03
 -7.41036205e-06  8.03906202e-05 -1.62922482e-03  5.55350511e-04
  4.49712993e-04  3.27613521e-05 -1.19142448e-04 -3.15768213e-05
  4.25760446e-04]


32.681649728725496
----------------------------------------------------------------------------------------------------
0.9612319479879345
0.7804761389229389

Process finished with exit code 0

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值