对python实现二维函数高次拟合的示例详解


Posted in Python onDecember 29, 2018

在参加“数据挖掘”比赛中遇到了关于函数高次拟合的问题,然后就整理了一下源码,以便后期的学习与改进。

在本次“数据挖掘”比赛中感觉收获最大的还是对于神经网络的认识,在接近一周的时间里,研究了进40种神经网络模型,虽然在持续一周的挖掘比赛把自己折磨的惨不忍睹,但是收获颇丰。现在想想也挺欣慰自己在这段时间里接受新知识的能力。关于神经网络方面的理解会在后续博文中补充(刚提交完论文,还没来得及整理),先分享一下高次拟合方面的知识。

# coding=utf-8
import matplotlib.pyplot as plt
import numpy as np
import scipy as sp
import csv
from scipy.stats import norm
from sklearn.pipeline import Pipeline
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures
from sklearn import linear_model

''''' 数据导入 '''
def loadDataSet(fileName):
 dataMat = []
 labelMat = []
 csvfile = file(fileName, 'rb')
 reader = csv.reader(csvfile)
 b = 0
 for line in reader:
  if line[50] is '':
   b += 1
  else:
   dataMat.append(float(line[41])/100*20+30)
   labelMat.append(float(line[25])*100)


 csvfile.close()
 print "absence time number: %d" % b
 return dataMat,labelMat

xArr,yArr = loadDataSet('data.csv')
x = np.array(xArr)
y = np.array(yArr)
# x = np.arange(0, 1, 0.002)
# y = norm.rvs(0, size=500, scale=0.1)
# y = y + x ** 2

def rmse(y_test, y):
 return sp.sqrt(sp.mean((y_test - y) ** 2))

def R2(y_test, y_true):
 return 1 - ((y_test - y_true) ** 2).sum() / ((y_true - y_true.mean()) ** 2).sum()

def R22(y_test, y_true):
 y_mean = np.array(y_true)
 y_mean[:] = y_mean.mean()
 return 1 - rmse(y_test, y_true) / rmse(y_mean, y_true)


plt.scatter(x, y, s=5)
#分别进行1,2,3,6次拟合
degree = [1, 2,3, 6]
y_test = []
y_test = np.array(y_test)

for d in degree:
 #普通
 # clf = Pipeline([('poly', PolynomialFeatures(degree=d)),
 #     ('linear', LinearRegression(fit_intercept=False))])
 # clf.fit(x[:, np.newaxis], y)

 # 岭回归
 clf = Pipeline([('poly', PolynomialFeatures(degree=d)),
     ('linear', linear_model.Ridge())])
 clf.fit(x[:, np.newaxis], y)
 y_test = clf.predict(x[:, np.newaxis])

 print('多项式参数%s' %clf.named_steps['linear'].coef_)
 print('rmse=%.2f, R2=%.2f, R22=%.2f, clf.score=%.2f' %
   (rmse(y_test, y),
   R2(y_test, y),
   R22(y_test, y),
   clf.score(x[:, np.newaxis], y)))

 plt.plot(x, y_test, linewidth=2)

plt.grid()
plt.legend(['1', '2','3', '6'], loc='upper left')
plt.show()

以上这篇对python实现二维函数高次拟合的示例详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 实现归并排序算法
Jun 05 Python
python实现目录树生成示例
Mar 28 Python
python框架中flask知识点总结
Aug 17 Python
python实现字符串和字典的转换
Sep 29 Python
python简易实现任意位数的水仙花实例
Nov 13 Python
Pandas 缺失数据处理的实现
Nov 04 Python
python图形用户接口实例详解
Dec 16 Python
自定义Django Form中choicefield下拉菜单选取数据库内容实例
Mar 13 Python
使用jupyter notebook将文件保存为Markdown,HTML等文件格式
Apr 14 Python
python实现取余操作的简单实例
Aug 16 Python
深入解析NumPy中的Broadcasting广播机制
May 30 Python
linux中nohup和后台运行进程查看及终止
Jun 24 Python
pip安装py_zipkin时提示的SSL问题对应
Dec 29 #Python
Python 做曲线拟合和求积分的方法
Dec 29 #Python
python 画三维图像 曲面图和散点图的示例
Dec 29 #Python
python实现三维拟合的方法
Dec 29 #Python
Django数据库连接丢失问题的解决方法
Dec 29 #Python
Python Cookie 读取和保存方法
Dec 28 #Python
Python编程flask使用页面模版的方法
Dec 28 #Python
You might like
咖啡产品发展的三大浪潮
2021/03/04 咖啡文化
Extended CHM PHP 语法手册之 DIY
2006/10/09 PHP
ftp类(myftp.php)
2006/10/09 PHP
PHP 数据结构 算法描述 冒泡排序 bubble sort
2011/07/10 PHP
PHP判断远程图片是否存在的几种方法
2014/05/04 PHP
PHP整数取余返回负数的相关解决方法
2014/05/15 PHP
php array_keys 返回数组的键名
2016/10/25 PHP
Yii框架日志记录Logging操作示例
2018/07/12 PHP
PHP实现基本留言板功能原理与步骤详解
2020/03/26 PHP
javascript 写类方式之二
2009/07/05 Javascript
js转化毫秒为时间格式代码
2014/04/10 Javascript
详解Javacript和AngularJS中的Promises
2016/02/09 Javascript
解析jquery easyui tree异步加载子节点问题
2017/03/08 Javascript
jQuery插件FusionCharts绘制的2D条状图效果【附demo源码】
2017/05/13 jQuery
Vue.js实现列表清单的操作方法
2017/11/15 Javascript
Vue.set()动态的新增与修改数据,触发视图更新的方法
2018/09/15 Javascript
HTML+JS实现“代码雨”效果源码(黑客帝国文字下落效果)
2020/03/17 Javascript
JavaScript实现音乐导航效果
2020/11/19 Javascript
[04:04]DOTA2亚洲邀请赛比赛场馆&酒店全攻略
2017/03/23 DOTA
详解python 爬取12306验证码
2019/05/10 Python
Django model 中设置联合约束和联合索引的方法
2019/08/06 Python
PHP统计代码行数的小代码
2019/09/19 Python
Tensorflow累加的实现案例
2020/02/05 Python
如何用python写个模板引擎
2021/01/14 Python
HTML5之SVG 2D入门12—SVG DOM及DOM操作介绍
2013/01/30 HTML / CSS
DHC中国官方购物网站:日本通信销售No.1化妆品
2016/08/20 全球购物
世界上最大的在线旅行社新加坡网站:Expedia新加坡
2016/08/25 全球购物
苹果音乐订阅:Apple Music
2018/08/02 全球购物
德国最大的服装、鞋子和配件在线商店之一:Outfits24
2019/07/23 全球购物
医学生职业规划范文
2014/01/05 职场文书
三方合作协议书范本
2014/04/18 职场文书
《晚上的太阳》教学反思
2014/04/23 职场文书
汉语言文学专业求职信
2014/06/19 职场文书
大一工商管理职业生涯规划:有梦最美,行动相随
2014/09/18 职场文书
2014年人力资源部工作总结
2014/11/19 职场文书
党员自评材料范文
2014/12/17 职场文书