直接看代码

import numpy as np
import matplotlib.pyplot as plt
x = np.random.uniform(-3,3,size=100)
#在最新版本的sklearn中,所有的数据都应该是二维矩阵,哪怕它只是单独一行或一列。
X = x.reshape(-1,1)
y = 0.5 * x ** 2 + x + 2 +np.random.normal(0,1,size=100)

使用多项式特征添加

#数据归一化也在这个包
from sklearn.preprocessing import PolynomialFeatures

添加二次特征

#Polynomial 多项式
poly = PolynomialFeatures(degree=2)#添加二次特征
poly.fit(X)
X2 = poly.transform(X)
print(X2.shape)
print(X2[:5,:])#只看一下前五行所有列,加了一列1,x0
[[ 1.         -1.89324841  3.58438955][ 1.          1.7273085   2.98359465][ 1.         -2.28063427  5.20129265][ 1.         -2.11412398  4.46952022][ 1.         -2.77534495  7.70253957]]
from sklearn.linear_model import LinearRegression
lin_reg2 = LinearRegression()
lin_reg2.fit(X2,y)
y_predict = lin_reg2.predict(X2)
plt.scatter(x,y)
plt.scatter(np.sort(x),y_predict[np.argsort(x)])
plt.plot(np.sort(x),y_predict[np.argsort(x)],color = 'red')

print(lin_reg2.coef_)
print(lin_reg2.intercept_)
[0.         1.0644542  0.48720861]
1.9974866712787187

关于PolynomialFeatures类

#关于PolynomialFeatures类
X = np.arange(1,11).reshape(-1,2)
print(X.shape)
(5, 2)
print(X)
[[ 1  2][ 3  4][ 5  6][ 7  8][ 9 10]]
poly = PolynomialFeatures(degree=2)
poly.fit(X)
X2 = poly.transform(X)
print(X2.shape)
#为甚是六列呢。。第一列是1 接下来依次为x1,x2,x1 **2 ,x1 * x2,x2 **2
(5, 6)
print(X2)
[[  1.   1.   2.   1.   2.   4.][  1.   3.   4.   9.  12.  16.][  1.   5.   6.  25.  30.  36.][  1.   7.   8.  49.  56.  64.][  1.   9.  10.  81.  90. 100.]]
#当degree = 3 见课件 (特征呈指数级增加)

Pipeline(管道)

使用管道的方式可使得三步(添加多项式,标准化,回归)合在一起,使得代码更加简洁。

###Pipeline(管道)使用管道的方式可使得三步合在一起,使得代码更加简洁。。
x = np.random.uniform(-3,3,size=100)
#在最新版本的sklearn中,所有的数据都应该是二维矩阵,哪怕它只是单独一行或一列。
X = x.reshape(-1,1)
y = 0.5 * x ** 2 + x + 2 +np.random.normal(0,1,size=100)
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
poly_reg = Pipeline([('poly',PolynomialFeatures(degree=2)),('std_scaler',StandardScaler()),('lin_reg',LinearRegression())])
poly_reg.fit(X,y)
y_predict = poly_reg.predict(X)
plt.scatter(x,y)
plt.scatter(np.sort(x),y_predict[np.argsort(x)])
plt.plot(np.sort(x),y_predict[np.argsort(x)],color = 'red')

Python机器学习:多项式回归002scikit中的多项式回归与pipeline(管道)相关推荐

  1. Python机器学习:SVM004Scikit-learn中的SVM

    纵向值很大 数据尺度归一化 #SCikit-learn中的SVN import numpy as np import matplotlib.pyplot as plt from sklearn imp ...

  2. Python机器学习:SVM008scikit-learn中的高斯核函数

    gamma值时在调整模型复杂度 越大越倾向于过拟合 越小越倾向于欠拟合 import numpy as np import matplotlib.pyplot as plt from sklearn ...

  3. 【Python机器学习】——多项式回归

    Python机器学习--多项式回归 文章目录 Python机器学习--多项式回归 一.Python机器学习 多项式回归 一.Python机器学习 多项式回归 多项式回归(Polynomial Regr ...

  4. python机器学习 多项式回归模型正则化(拉索,岭,弹性网)

    多项式回归模型正则化(拉索,岭,弹性网) 目录 多项式回归模型正则化(拉索,岭,弹性网) 一.多项式回归模型正则化: 1.L1正则化(lasso)回归 2.L2正则化(Ridge)回归 3.弹性网(E ...

  5. python多项式回归_如何在Python中实现多项式回归模型

    python多项式回归 Let's start with an example. We want to predict the Price of a home based on the Area an ...

  6. Python机器学习中的数学原理详解(补充勘误表)

    数学是机器学习和数据科学的基础,任何期望涉足相关领域并切实领悟具体技术与方法的人都无法绕过数学这一关.在一篇题为<放弃幻想,搞AI必须过数学关>的网文中,作者一针见血地指出想从事AI相关工 ...

  7. 用python程序编写二元多项式_Python多项式回归的实现方法

    多项式回归是一种线性回归形式,其中自变量x和因变量y之间的关系被建模为n次多项式.多项式回归拟合x的值与y的相应条件均值之间的非线性关系,表示为E(y | x) 为什么多项式回归: 研究人员假设的某些 ...

  8. R语言中的多项式回归、局部回归、核平滑和平滑样条回归模型

    全文下载链接:http://tecdat.cn/?p=20531 当线性假设无法满足时,可以考虑使用其他方法(点击文末"阅读原文"获取完整代码数据). 相关视频 多项式回归 扩展可 ...

  9. GIS在地质灾害危险性评估与灾后重建中的实践技术应用及python机器学习灾害易发性评价模型建立与优化

    地质灾害是指全球地壳自然地质演化过程中,由于地球内动力.外动力或者人为地质动力作用下导致的自然地质和人类的自然灾害突发事件.由于降水.地震等自然作用下,地质灾害在世界范围内频繁发生.我国除滑坡灾害外, ...

最新文章

  1. jQuery的jquery-1.10.2.min.map触发404(未找到)
  2. Deno 并不是下一代 Node.js
  3. Qt的Oracle数据库QOCI驱动问题
  4. 技术实践 | 网易云信视频转码提速之分片转码
  5. 高可用高性能分布式文件系统FastDFS实践Java程序
  6. java数据集成是什么_数据集成 - BlueDavy之技术Blog - BlogJava
  7. 为什么java抗并发_用最通熟易懂的话说明,为什么要使用java并发编程
  8. linux -rpm,linux 的rpm命令
  9. 数据库存储 层次、树形结构 的标准做法
  10. dedecms织梦让channelartlist标签支持currentstyle属性
  11. 自己动手打造 mini 型 QQ (一):动手实现局域网仿 QQ 互联
  12. 淘宝万能抢单exe,含python源码
  13. mysql服务状态一直是启动解决方案
  14. Android初学之十二:Broadcast
  15. 黄山职业技术学院计算机专业怎么样啊,黄山职业技术学院怎么样
  16. 关于Mybatis拦截器的说明与使用
  17. 【C语言】如何理解【void(*)(void)】
  18. 2019年中国互联网企业100强
  19. 需要一款Mac上好用的音频编辑软件吗?看这里~
  20. 为什么需要划分VLAN?

热门文章

  1. 【BZOJ4008】亚瑟王,概率DP
  2. 复数基础—— i = 根号 -1 _3
  3. 会员编号生成规则_单据编号规则浅析
  4. 【英语学习】【WOTD】palimpsest 释义/词源/示例
  5. SAR成像(七):RD成像算法
  6. 第四次学习记录(ROS)
  7. 台湾大学公开课《概率》第五周一道不会作的作业题 ,一种看不懂的解法
  8. 常用的linux文件权限
  9. Hadoop生态圈-Hbase的API常见操作
  10. smartSVN 分支与合并