机器学习—数据挖掘之灰色预测算法
生活随笔
收集整理的這篇文章主要介紹了
机器学习—数据挖掘之灰色预测算法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 引言
- 1.灰色預測模型
- 2.python實現
引言
??灰色預測算法是一種對含有不確定因素的系統進行預測的方法。在建立灰色預測模型之前,需先對原始時間序列進行數據處理,經過數據處理后的時間序列即成為生成列?;疑到y常用的數據處理方式有累加和累減兩種?;疑A測以灰色模型為基礎,在眾多灰色模型中,GM(1,1)模型最為常用。下面展示灰色預測算法的過程及代碼實現
1.灰色預測模型
??設特征X(0)={X(0)(i),i=1,2...,n}X^{(0)}=\{X^{(0)}(i),i=1,2...,n\}X(0)={X(0)(i),i=1,2...,n}為一非負單調原始數據序列,建立灰色預測模型如下:
??灰色預測法的通用性強,一般的時間序列場合都適用,尤其適合那些規律性差且不清楚數據產生機理的情況?;疑A測模型的優點是預測精度高,模型可檢驗、參數估計方法簡單、對小數據集有很好的的預測效果;缺點是對原始數據序列的光滑度要求很高,在原始數據列光滑性較差的情況下灰色預測模型的預測精度不高,甚至通不過檢驗,結果只能放棄使用灰色模型進行預測。
2.python實現
import numpy as np#自定義灰色預測函數 def GM11(x0): # 數據處理x1 = x0.cumsum() #1-AGO序列z1 = (x1[:len(x1)-1] + x1[1:])/2.0 #緊鄰均值(MEAN)生成序列z1 = z1.reshape((len(z1),1))# 計算參數B = np.append(-z1, np.ones_like(z1), axis = 1)Yn = x0[1:].reshape((len(x0)-1, 1))[[a],[b]] = np.dot(np.dot(np.linalg.inv(np.dot(B.T, B)), B.T), Yn) # 還原值f = lambda k: (x0[0]-b/a)*np.exp(-a*(k-1))-(x0[0]-b/a)*np.exp(-a*(k-2)) # 后驗差檢驗delta = np.abs(x0 - np.array([f(i) for i in range(1,len(x0)+1)]))C = delta.std()/x0.std()P = 1.0*(np.abs(delta - delta.mean()) < 0.6745*x0.std()).sum()/len(x0)return f, a, b, x0[0], C, P #返回灰色預測函數、a、b、首項、方差比、小殘差概率參考于《python數據分析與挖掘實戰》
如果對您有幫助,麻煩點贊關注,這真的對我很重要!!!如果需要互關,請評論或者私信!
總結
以上是生活随笔為你收集整理的机器学习—数据挖掘之灰色预测算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机常见文件后缀名
- 下一篇: Java @responsebody,s