python学习:两个py文件间的函数调用
本例子是测试一些数据分析模型的R值,R值越接近1,表明该模型越适合分析该数据集.
本例子是在集成开发环境Aptana Studio 3 中创建 一个dataAnaly ,然后创建modelTest.py调用modelChose.py中的函数;在modelTest.py中需要import modelChose
格式:from 模块名 import 函数名1,函数名2....
'''
Created on 2015-1-19 @author: xuzhengzhu
'''
#input files
import xlrd,openpyxl
import pandas as pd
from sklearn import cross_validation
from dataAnaly import modelChose
from sklearn.metrics import r2_score
import numpy as np file=pd.ExcelFile('e:\\report.xlsx')
data=file.parse('Sheet1')
n=len(data)
#init data
x=data[['myjg','tjg']]
y=data['byjg']
models=['linear_model.SGDRegressor','GradientBoostingRegressor','RandomForestRegressor','AdaBoostRegressor','BaggingRegressor','linear_model.LinearRegression','linear_model.LogisticRegression','svm.svr','svm.NuSVR']
m=len(models)
k=10
R2=np.zeros(k)
z=2
count=0
modelCount=0
#lookup get model object
for modelCount in range(m-1):
clf=modelChose.modelChose(models[modelCount])
R2=np.zeros(k)
count=0
#lookup folds
for train_index,test_index in cross_validation.KFold(n-z,n_folds=k):
x_train,x_test=x.ix[train_index],x.ix[test_index]
y_train,y_test=y[train_index],y[test_index]
clf.fit(x_train,y_train)
y_predict=clf.predict(x_test);
r2=r2_score(y_test,y_predict)
#print 'computed %d time(s) and R square is:%f ' %(count+1,r2)
R2[count]=r2
count+=1 print 'model choose is :',models[modelCount],'the mean of R2 is :',np.mean(R2)
y_validation = clf.predict(x.ix[(n-z):n])
r2_val=r2_score(y.ix[(n-z):n],y_validation)
print 'model choose is :',models[modelCount],'the validation ser R square is :%f ',r2_val
#print pd.DataFrame({'y_true':y.ix[(n-z):n,],'y_validation':y_validation})
modelCount+=1
modelTest.py
'''
Created on 2015-1-19
@author: xuzhengzhu
'''
from sklearn.ensemble import BaggingRegressor
from sklearn.ensemble import AdaBoostRegressor
from sklearn.ensemble import RandomForestRegressor
from sklearn.ensemble import GradientBoostingRegressor
from sklearn import linear_model
from sklearn.svm import SVR
from sklearn.svm import NuSVR def modelChose(modelName):
if(cmp(modelName,'linear_model.SGDRegressor')==0):
#print modelName
clf = linear_model.SGDRegressor()
return clf
elif (cmp(modelName,'GradientBoostingRegressor')==0):
#print modelName
clf = GradientBoostingRegressor()
return clf
elif (cmp(modelName,'RandomForestRegressor')==0):
#print modelName
clf = RandomForestRegressor()
return clf
elif (cmp(modelName,'AdaBoostRegressor')==0):
#print modelName
clf = AdaBoostRegressor()
return clf
elif (cmp(modelName,'BaggingRegressor')==0):
#print modelName
clf = BaggingRegressor()
return clf
elif (cmp(modelName,'linear_model.LinearRegression')==0):
#print modelName
clf = linear_model.LinearRegression()
return clf
elif (cmp(modelName,'linear_model.LogisticRegression')==0):
#print modelName
clf = linear_model.LogisticRegression()
return clf
elif (cmp(modelName,'svm.svr')==0):
#print modelName
clf = SVR()
return clf
elif (cmp(modelName,'svm.NuSVR')==0):
#print modelName
clf = NuSVR()
return clf
else:
#print modelName,count,'dddd',models[count]
return 1
modelChose.py
测试结果:
model choose is : linear_model.SGDRegressor the mean of R2 is : -4.40149514377e+158
model choose is : linear_model.SGDRegressor the validation ser R square is :%f -1.69950873171e+175
model choose is : GradientBoostingRegressor the mean of R2 is : 0.06842532769
model choose is : GradientBoostingRegressor the validation ser R square is :%f -0.706828939678
model choose is : RandomForestRegressor the mean of R2 is : 0.0656454293629
model choose is : RandomForestRegressor the validation ser R square is :%f -1.62440546968
model choose is : AdaBoostRegressor the mean of R2 is : 0.0678670360111
model choose is : AdaBoostRegressor the validation ser R square is :%f -0.743162901308
model choose is : BaggingRegressor the mean of R2 is : 0.0913739612188
model choose is : BaggingRegressor the validation ser R square is :%f -1.11141498216
model choose is : linear_model.LinearRegression the mean of R2 is : 0.0976952970181
model choose is : linear_model.LinearRegression the validation ser R square is :%f -15.3631379961
model choose is : linear_model.LogisticRegression the mean of R2 is : -0.224099722992
model choose is : linear_model.LogisticRegression the validation ser R square is :%f 0.588585017836
model choose is : svm.svr the mean of R2 is : -0.243679440381
model choose is : svm.svr the validation ser R square is :%f -1.21033155027

python学习:两个py文件间的函数调用的更多相关文章
- Python包中 __init__.py文件的作用
原创连接 https://www.cnblogs.com/AlwinXu/p/5598543.html Python包中 __init__.py文件的作用 在创建python包的过程中,IDE都会在包 ...
- Python_架构、同一台电脑上两个py文件通信、两台电脑如何通信、几十台电脑如何通信、更多电脑之间的通信、库、端口号
1.架构 C/S架构(鼻祖) C:client 客户端 S:server 服务器 早期使用的一种架构,目前的各种app使用的就是这种架构,它的表现形式就是拥有专门的app. B/S架构(隶属于C/ ...
- python包中__init__.py文件的作用
python包中__init__.py文件的作用 __init__.py文件最常用的作用是标识一个文件夹是一个 python包. __init__.py文件的另一个作用是定义模糊导入时要导入的内容. ...
- [python IO学习篇] 补充.py文件是中文, .ini文件内容是中文
python 代码文件的编码.py文件默认是ASCII编码,中文在显示时会做一个ASCII到系统默认编码的转换,这时就会出错:SyntaxError: Non-ASCII character.需要在代 ...
- python学习两月总结_汇总大牛们的思想_值得收藏
下面是我汇总的我学习两个月python(version:3.3.2)的所有笔记 你可以访问:http://www.python.org获取更多信息 你也可以访问:http://www.cnblogs. ...
- python 学习笔记(十二) 文件和序列化
python 文件读写和序列化学习.## python文件读写`1 打开并且读取文件` f = open('openfile.txt','r') print(f.read()) f.close() ` ...
- Python学习(15)文件/IO
目录 Python 文件I/O 打印到屏幕 读取键盘输入 打开和关闭文件 File对象属性 文件定位 重命名和删除文件 Python的目录 Python 文件I/O 本章只讲述所有基本的的I/O函数, ...
- 编写python程序和运行.py文件的方法步骤
前提:已安装好 Subliume Test 3 且已经添加好python编译系统,已安装好python3.7 一.新建一个文本文档,将后缀名改为.py 二.使用 Subliume Test 3 打开该 ...
- python调用另一个.py文件中的类和函数
同一文件夹下的调用 1.调用函数 A.py文件如下:def add(x,y): print('和为:%d'%(x+y)) 在B.py文件中调用A.py的add函数如下: import AA.ad ...
随机推荐
- HDU-5351
MZL's Border Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Tota ...
- Django视图之ORM更改数据库连接——配置MySQL库
Django中创建app01应用 python manage.py startapp app01 1. 首先安装pymsql模块 # Python3中 pip3 install pymysql 在 p ...
- 解决网页中Waiting (TTFB)数据加载过慢的问题
解决网页中Waiting (TTFB)数据加载过慢的问题 最近做了一个网页,在本地测试良好,数据可以得到很快的反馈,但是当部署到云端Linux上时候,就会出现加载缓慢的问题.本地测试,得到数据大概3s ...
- OpenStack 存储服务 Cinder存储节点部署LVM (十四)
部署在block(10.0.0.103)主机 一)配置lvm 1.安装lvm2软件包 yum install lvm2 -y 2.启动LVM的metadata服务并且设置该服务随系统启动 system ...
- TCP握手协议简述
TCP握手协议简述在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接.第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器 ...
- gdbserver静态编译
redhat9 编译gdb server(静态编译)下载gdb-6.2a.tar:http://download.chinaunix.net/download.php?id=6680&Reso ...
- 2018 ACM-ICPC 青岛网络赛
最近打比赛不知道为什么总是怀疑自己 写完之后不敢交,一定跟学长说一遍自己的思路 然后发现"哦原来我是对的" 然后就A掉了…… 所以还是要有自信 Problem A 最大值直接输出m ...
- 洛谷P2520向量
题目传送门 看到数据范围其实就可以确定这是一道结论题. 首先分析,给定你的向量的两个坐标a,b有八种组合方式可以用,但实际上整理一下可以得出实际上只有五种,x/y ±2a,x/y ±2b,x+a,y+ ...
- Visual Studio警告IDE0006的解决办法
Visual Studio警告IDE0006的解决办法 Visual Studio警告IDE0006虽然给出明确的操作过程,但是在实施的过程中,还是有很多地方需要注意.下面以官方的信息,介绍一下注意 ...
- poj 3122(二分查找)
Pie Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 13564 Accepted: 4650 Special Ju ...