编程语言
首页 > 编程语言> > python GM11

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,list,len,forecast,predict,num,GM11,gm11
来源: https://www.cnblogs.com/caozewen/p/12164214.html