设为首页 收藏本站
查看: 917|回复: 0

[经验分享] python学习:两个py文件间的函数调用

[复制链接]

尚未签到

发表于 2015-11-30 10:53:51 | 显示全部楼层 |阅读模式
  本例子是测试一些数据分析模型的R值,R值越接近1,表明该模型越适合分析该数据集.
  本例子是在集成开发环境Aptana Studio 3 中创建 一个dataAnaly ,然后创建modelTest.py调用modelChose.py中的函数;在modelTest.py中需要import modelChose
  格式:from 模块名 import 函数名1,函数名2....


DSC0000.gif DSC0001.gif


'''
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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-145297-1-1.html 上篇帖子: [No000028]Python的使用之禅及程序员应该明白的一些道理 下篇帖子: Python学习(七)面向对象 ——类和实例
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表