灰色理论,由python实现。

greytheor的Python项目详细描述


关于

灰色理论系统是指系统内部各种因素之间的不确定关系,这种系统中一部分信息是已知的,另一部分是未知的。该理论有三种方法:GM0N、GM1N、GM11。在

Grey Relational Analysis灰色系統理論灰色關聯分析灰色預測法《Grey system theory-based models in time series prediction》2009.改良式 GM(1,1)灰預測模型於台電電量需求預測之研究

如何开始

导入

fromgrey_theoryimportGreyTheorygrey=GreyTheory()

GM0N

^{pr2}$

GM1N

gm1n=grey.gm1ngm1n.add_outputs([2.,11.,1.5,2.,2.2,3.],"x1")gm1n.add_patterns([3.,13.5,1.,3.,3.,4.],"x2")gm1n.add_patterns([2.,11.,3.5,2.,3.,2.],"x3")gm1n.add_patterns([4.,12.,2.,1.,2.,1.],"x4")gm1n.add_patterns([1.,10.,5.,2.,1.,1.],"x5")gm1n.analyze()# Looks GM1N the results as below:gm1n.print_analyzed_results()"""Pattern key: 'x1', grey value: 1.4385641363407546, ranking: 0Pattern key: 'x2', grey value: 1.3300049398977922, ranking: 1Pattern key: 'x4', grey value: 0.6084241725675539, ranking: 2Pattern key: 'x3', grey value: 0.5977013008400084, ranking: 3Pattern key: 'x5', grey value: 0.19277457599259723, ranking: 4"""gm1n.print_influence_degrees()"""The keys of parameters their influence degrees (ordering): 'x2 > x4 > x3 > x5'"""

GM11

gm11=grey.gm11gm11.add_pattern(223.3,"a1")gm11.add_pattern(227.3,"a2")gm11.add_pattern(230.5,"a3")gm11.add_pattern(238.1,"a4")gm11.add_pattern(242.9,"a5")gm11.add_pattern(251.1,"a6")gm11.forecast(2)# Default is 1, the parameter means how many next moments need to forcast continually.# Looks GM11 the results for example as below:gm11.print_forecasted_results()"""K = 1From original value 227.3 to forecasted value is 226.08736263692822The error rate is 0.005334964201811667K = 2From original value 230.5 to forecasted value is 231.87637984134398The error rate is 0.005971279138151739K = 3From original value 238.1 to forecasted value is 237.81362611881437The error rate is 0.0012027462460547044K = 4From original value 242.9 to forecasted value is 243.9028969077225The error rate is 0.00412884688234865K = 5From original value 251.1 to forecasted value is 250.14808482949547The error rate is 0.003790980368397134K = 6Forcated next moment value is 256.55318217699795K = 7Forcated next moment value is 263.1222834666411Forcated next moment value is 283.85614494317775The average error rate 0.0040857633673527785"""

GM11卷积预测
# Convolutional forecasting of GM11, forecast_convolution(stride, length)gm11.forecast_convolution(1,4)# To record last forecasted result.last_forecasted_results=gm11.forecasted_outputs# To clean all forecasted results. gm11.clean_forecasted()# In next iteration of forecasting, we wanna continue use last forecasted results to do next forecasting, # but if we removed gm11.forecasted_outputs list before,  # we can use continue_forecasting() to extend / recall the last forecasted result come back to be convolutional features. gm11.continue_forecasting(last_forecasted_results)

Z的α

# For example, if you wanna customize alpha value to reduce error-rate of prediction before calculate AGO, # Directly try to setup the alpha value before start .analyze() and .forecast().gm11.alpha=0.8gm11.add_pattern()gm11.forecast()

多处理

  1. 将gm0n、gm1n或gm11的对象放入它们自己的数组中。在
  2. 运行特定功能包括:灰色.run.gm0n(阵列),灰色.run.gm1n(阵列)或灰色.run.gm11(数组)。在
  3. 枚举数组或枚举。运行.gm0n(), .运行.gm1n()和。运行.gm11()返回数组。在
# multiprocessing examples:# for GM0N, GM1Nqueue=[]queue.append(gm0n.deepcopy())queue.append(gm0n.deepcopy())queue.append(gm0n.deepcopy())queue.append(gm0n.deepcopy())queue.append(gm0n.deepcopy())queue.append(gm0n.deepcopy())queue.append(gm0n.deepcopy())grey.run.gm0n(queue)forgminqueue:gm.print_influence_degrees()
# for GM11gm11_queue=[]gm11_queue.append(gm11.deepcopy())gm11_queue.append(gm11.deepcopy())gm11_queue.append(gm11.deepcopy())gm11_queue.append(gm11.deepcopy())gm11_queue.append(gm11.deepcopy())gm11_queue.append(gm11.deepcopy())gm11_queue.append(gm11.deepcopy())grey.run.gm11(gm11_queue)forgmingm11_queue:gm.print_forecasted_results()

版本

1.3版

许可证

麻省理工学院。在

注意

GM11:

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
maven字段#getGenericType()抛出java。lang.TypeNotPresentException   用java绘制三角形的几何图形   java无法下载主题和发件人地址(rediff)   java如何使代码线程安全   java在尝试转换FileInputStream中的文件时,我遇到了一个FileNotFound异常   java Moxy和Jackson如何将Json映射到Pojo   在foreach循环中使用BufferedWriter生成新行的java问题   java为什么我的测试在单次执行中运行时间小于1秒,而在maven构建中运行时间大于20秒?   java如何显示下载附件的进度条   了解java rmi的良好实践   .net可以将Java portlet嵌入ASP。网页?   循环如何多次执行Java方法?   java如何确保用户输入在给定的有效范围内?   java单元测试定理   java如何在IntelliJ上运行外部构建项目?   JAVA:试图编写一个检查字符串是否为数字的方法。总是返回错误   javahadoop将特定键的所有map方法生成的所有值都发送到一个reduce方法,对吗?   在java中读取和使用文件