python 机器学习多项式回归
现实世界的曲线关系都是通过增加多项式实现的,现在解决多项式回归问题
住房价格样本

样本图像
import matplotlib.font_manager as fm
import matplotlib.pyplot as plt
myfont = fm.FontProperties(fname='C:\Windows\Fonts\simsun.ttc')
# plt.figure() # 实例化作图变量
plt.title('房价面积价格样本', fontproperties = myfont) # 图像标题
plt.xlabel('面积(平方米)', fontproperties = myfont) # x轴文本
plt.ylabel('价格(万元)', fontproperties = myfont) # y轴文本
# plt.axis([30, 400, 100, 400])
plt.grid(True) # 是否绘制网格线 X = [[50], [100], [150], [200], [250], [300]]
y = [[150], [200], [250], [280], [310], [330]] X_test = [[250], [300]] # 用来做最终效果测试
y_test = [[310], [330]] # 用来做最终效果测试
# plt.plot(X, y, 'b.')#点
# plt.plot(X, y, 'b-')#线
plt.scatter(X, y, marker='*',color='blue',label='房价面积价格样本')
plt.show()

用线性回归
添加以下代码
model = LinearRegression()
model.fit(X, y)
print('一元线性回归 r-squared', model.score(X_test, y_test)) X2 = [[30], [400]]
y2 = model.predict(X2)
plt.plot(X2, y2, 'g-')
plt.show()

实际情况是,如果房屋面积一味的增加,房价并不会线性增长,因此线性关系已经无法描述真实的房价问题
采用多项式回归
# 实例化一个二次多项式特征实例
quadratic_featurizer = PolynomialFeatures(degree=2) # 用二次多项式对样本X值做变换
X_train_quadratic = quadratic_featurizer.fit_transform(X) # 创建一个线性回归实例
regressor_model = LinearRegression() # 以多项式变换后的x值为输入,代入线性回归模型做训练
regressor_model.fit(X_train_quadratic, y) # 设计x轴一系列点作为画图的x点集
xx = np.linspace(30, 400, 100) # 把训练好X值的多项式特征实例应用到一系列点上,形成矩阵
xx_quadratic = quadratic_featurizer.transform(xx.reshape(xx.shape[0], 1)) yy_predict = regressor_model.predict(xx_quadratic) # 用训练好的模型作图
plt.plot(xx, yy_predict, 'r-') X_test_quadratic = quadratic_featurizer.transform(X_test)
print('二次回归 r-squared', regressor_model.score(X_test_quadratic, y_test))
#
#
plt.show() # 展示图像

继续三次回归
cubic_featurizer = PolynomialFeatures(degree=3)
X_train_cubic = cubic_featurizer.fit_transform(X)
regressor_cubic = LinearRegression()
regressor_cubic.fit(X_train_cubic, y)
xx_cubic = cubic_featurizer.transform(xx.reshape(xx.shape[0], 1))
plt.plot(xx, regressor_cubic.predict(xx_cubic)) X_test_cubic = cubic_featurizer.transform(X_test)
print('三次回归 r-squared', regressor_cubic.score(X_test_cubic, y_test))
plt.show() # 展示图像


可以看到三次回归比二次回归效果又好了一些,但是不是很明显。所以二次回归更可能是最适合的回归模型,三次回归可能有过拟合现象
参考:http://www.aboutyun.com/thread-19073-1-1.html
python 机器学习多项式回归的更多相关文章
- Python机器学习--回归
线性回归 # -*- coding: utf-8 -*- """ Created on Wed Aug 30 19:55:37 2017 @author: Adminis ...
- Python 机器学习实战 —— 监督学习(上)
前言 近年来AI人工智能成为社会发展趋势,在IT行业引起一波热潮,有关机器学习.深度学习.神经网络等文章多不胜数.从智能家居.自动驾驶.无人机.智能机器人到人造卫星.安防军备,无论是国家级军事设备还是 ...
- 常用python机器学习库总结
开始学习Python,之后渐渐成为我学习工作中的第一辅助脚本语言,虽然开发语言是Java,但平时的很多文本数据处理任务都交给了Python.这些年来,接触和使用了很多Python工具包,特别是在文本处 ...
- [Python] 机器学习库资料汇总
声明:以下内容转载自平行宇宙. Python在科学计算领域,有两个重要的扩展模块:Numpy和Scipy.其中Numpy是一个用python实现的科学计算包.包括: 一个强大的N维数组对象Array: ...
- 【转】常见的python机器学习工具包比较
http://algosolo.com/ 分析对比了常见的python机器学习工具包,包括: scikit-learn mlpy Modular toolkit for Data Processing ...
- python机器学习《回归 一》
唠嗑唠嗑 依旧是每一次随便讲两句生活小事.表示最近有点懒,可能是快要考试的原因,外加这两天都有笔试和各种面试,让心情变得没那么安静的敲代码,没那么安静的学习算法.搞得第一次和技术总监聊天的时候都不太懂 ...
- 2016年GitHub排名前20的Python机器学习开源项目(转)
当今时代,开源是创新和技术快速发展的核心.本文来自 KDnuggets 的年度盘点,介绍了 2016 年排名前 20 的 Python 机器学习开源项目,在介绍的同时也会做一些有趣的分析以及谈一谈它们 ...
- [resource]Python机器学习库
reference: http://qxde01.blog.163.com/blog/static/67335744201368101922991/ Python在科学计算领域,有两个重要的扩展模块: ...
- Python机器学习包
常用Python机器学习包 Numpy:用于科学计算的包 Pandas:提供高性能,易于使用的数据结构和数据分析工具 Scipy:用于数学,科学工程的软件 StatsModels:用于探索数据.估计统 ...
随机推荐
- springMvc Velocity tool 源码分析
在公司使用pandoraboot配置了velocity tool,一直不明白官方支持的init方法没有调用,而且不支持velocity tool 1.x版本的定义(1.x和2.x的定义见下面),而另一 ...
- [Go] md5 加密 示例
package main import ( "crypto/md5" "encoding/hex" "fmt" "io" ...
- delphi teechrt中TChart 一些属性设置
把图片设置成黑白 2.设置颜色
- android 模拟器报 no CPU/ABI system image for target
搭建完成Android开发环境后,在创建安卓模拟器的时候遇到了问题.这个问题就是图片中显示的no CPU/ABI system image available for this target还有no ...
- Linux 用户和用户操作
1,创建组 groupadd test 增加一个test组 2,修改组 groupmod -n test2 test 将test组的名子改成test2 3,删除组 groupdel test2 删除 ...
- Android 关于“NetworkOnMainThreadException”出错提示的原因及解决办法
几乎每天都在论坛里面看到有网友问这个问题,代码是无误的,在低版本的API上都可以运行的,但在3.0以上的版本就会出现NetworkOnMainThreadException 出现android.os. ...
- Linux学习17-gitlab访问慢502问题优化
前言 浏览器访问gitlab的web页面,发现非常慢,并且很容易出现502问题.其中一个原因就是8080端口被tomcat占用,前面一篇已经更换了端口,但还是很慢. 后来搜了下,原因是gitlab占用 ...
- tomcat nginx默许的post大小限制
tomcat nginx默认的post大小限制 执行大文件上传,或者,大数据量提交时,当提交的数据大小超过一定限制时,发现后台从request取值的代码request.getParameter(&qu ...
- 哥谭第一季/全集Gotham迅雷下载
哥谭市 第一季 Gotham (2014)本季看点:<哥谭镇>将由丹尼·加农掌镜,布鲁诺·海勒执笔剧本.电视剧集<哥谭>可以说<蝙蝠侠>的前传,剧集描述的是DC漫画 ...
- 真探第一季/全集True Detective1迅雷下载
真探 第一季 True Detective Season 1 (2014)真相如探 / 真爱如探本季看点:这部剧采用多视角叙事,伍迪·哈里森与马修·麦康纳饰演两名侦探搭档,他们一起调查一桩17年前的悬 ...