python GM11

Posted 缘随风烬

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python GM11相关的知识,希望对你有一定的参考价值。

常见系统分类:
  • 白色系统是指一个系统的内部特征是完全 已知的,即系统的信息是完全充分的。
  • 黑色系统是指一个系统的内部信息对外界来说是一无所知的,只能通过它与外界的联系来加以观测研究。
  • 灰色系统内的一部分信息是已知的,另一部分信息是未知的,系统内各因素间有不确定的关系。

代码实现

# -*- coding=utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
from greytheory import GreyTheory
import pymysql

def predict(list):
    grey = GreyTheory()
    gm11 = grey.gm11
    gm11.alpha = 0.5
    gm11.length = 4
    gm11.stride = 1
    # gm11.convolution = False # 默认为False

    for num in list:
        gm11.add_pattern(num, num)
    gm11.forecast()

    for forecast in gm11.analyzed_results:
        # print(forecast.forecast_value)
        if forecast.tag != gm11._TAG_FORECAST_HISTORY:
            res = forecast.forecast_value
    print("result:", res)

    x1 = np.linspace(0, len(gm11.patterns), len(gm11.patterns), endpoint=True)
    plt.plot(x1, gm11.patterns)

    predict_list = []
    # 预测的值在分析结果内,最终把预测的值加入到列表内
    for num in gm11.analyzed_results:
        predict_list.append(num.forecast_value)
    x2 = np.linspace(0, len(predict_list), len(predict_list), endpoint=True)
    plt.plot(x2, predict_list)
    plt.show()

def connectMySql():
    conn = pymysql.connect(host=\'localhost\', user=\'root\', passwd=\'123456\', port=3306, db=\'mydb\', charset=\'utf8\')
    cur = conn.cursor()
    cur.execute("select * from stu")
    nums = len(cur.fetchall())      # 获取数据库的行数
    print(nums)
    cur.execute("select * from stu where id <= 10")
    str = cur.fetchall()
    cur.close()
    conn.close()
    return str

if __name__ == "__main__":
    data = []
    list = connectMySql()
    for i in list:
        data.append(i[0])
    print(data)
    predict(data)

 

结果:

 

 蓝色线条表示真实值

橙色线条表示预测值

 

 

 

以上是关于python GM11的主要内容,如果未能解决你的问题,请参考以下文章

灰色预测GM(1,n)模型_python

ScrollView 行为怪异(Xcode 11 GM 种子 - SwiftUI)

数学建模灰色预测程序代码?

如何从片段适配器启动活动

主线程检查器:在后台线程上调用 UI API iOS 11 Xcode 9 GM Seed

Facebook 登录错误 - Xcode 8 GM