1. 程式人生 > >基於微軟案例資料探勘之結果預算+下期彩票預測篇

基於微軟案例資料探勘之結果預算+下期彩票預測篇

本篇我們將根據上一篇的預測過程詳細的給出預測結果值,形成一份可供具體參考的資料明細表。

應用場景介紹

作為Microsoft時序演算法的應用場景,在上一篇我們已經詳細介紹了,本篇就不再贅述,總結一下就是凡事要應用時間匯流排為依據,根據以往歷史事例記錄推測以後將要發生的結果值,此種場景我們都會應用到時序演算法。

比如:預測銷售記錄、預測營業額度、預測明年公司員工人數、預測下個月房價、預測明年.....

但其實凡此種種我們要挖掘的其實是一種規律,一種事態進展中的導向,而這些可能不基於資料僅憑經驗值是做不到的或者說不準確的,凡事有因必有果,很多事情冥冥中已經註定,汗...有點佛家寓言的味道!時序演算法更重要的是展現這注定的過程,然後推算出將要發生的結果。對於本來的事例就無規律可循,這種事情是用Microsoft時序演算法無法預測的,或者預測結果是不準的,比如:大師,您幫我算算我下期彩票買什麼號能中一等獎???我那個去!....汗......也能算..只是不準!...

技術準備

(1)參照上一篇文章,我們利用微軟提供的案例資料倉庫(AdventureWorksDW2008R2),這這裡我們只需要用到一張表,確切的說是一張檢視vTimeSeries,其實這裡面就是記錄的往年不同月份的銷售彙總值,稍後我們將詳細分析這部分資料。

(2)VS2008、SQL Server、 Analysis Services

操作步驟

(1)這裡我們應用上期中時序演算法的解決方案,我們開啟:

這裡上篇文章我們已經分析的很詳細,有興趣的童鞋可以參照上一篇文章,到此我們來可以驗證下該模型的準確度怎麼樣,我們來檢視“挖掘準確性圖表”

可以看到此處為灰色顯示,也就是說對於Microsoft時序演算法模型,準確度模型是沒法預測的,這也是在Microsoft所有的挖掘演算法中唯一一個不能利用準確度性圖表進行驗證的,原因很簡單:事情還沒發生,你驗證個P...

以往的挖掘模型可以通過歷史遺留的部分事例進行驗證模型的準確度,而時序演算法不行,因為你的時間維度還沒演變到此,所有的所有的都還未發生,沒法驗證。當然我們可以採用交叉驗證根據以往的事例來驗證當前時間以前發生的事是否準確。咱們後期進行....

(2)基於現有Microsoft時序演算法來推測未來發生結果值

這個步驟沒啥複雜的,就是根據上篇我們的時序挖掘模型來推測出未來將要產生的銷售額和銷售量,我們會推測出詳細的結果值表

我們進入“挖掘模型預測”面板

我們選擇源為“預測函式”,將Amount、Quantity兩個預測值拖到條件/引數視窗,然後輸入預測步驟為5,並且將主鍵列加入或者我們直接填寫查詢語句:

點選執行按鈕,我們來檢視結果:

結果出現了,M200這款自行車在歐洲在2008年的銷售額和銷售量我們已經確切的預測出來了,因為我們只是預測了5個月,其它時間段的也可以推測出,當然其它的產品可以檢視,此處我們就不展開了,剩下的工作我們將它們儲存到資料庫:

我們來檢視資料庫明細:

嘿嘿...剩下的事情就是拿著這份資料去找BOSS了....然後...就然後了......

-------------------------------------------------------霸氣的分割線------------------------------------------------------------------

到此貌似本篇文章也應該結束了,但是我估計到此結束會有很多朋友罵我是標題黨,你丫的不是說要玩彩票預測嘛,丫不是說時序演算法可以預測未來的事情嘛....咋認慫了呢....

上面的應用場景中也提到了此問題...鑑於此,我懷揣著成為“大溼”的夢想,小心翼翼的打開了百度,然後輸入了:彩票,希望從中找到點資料來瞅瞅:

看到了這霸氣的百度樂彩,而且是頭條顯示,我弱弱的點開了它,然後很仔細的看了一圈,終於在一個小角落裡找到了一個比較簡單的東西,“排列三”,嗯...就三個數是不是還好弄點,要不推測的數太多了會不會把自己搞死,嘿嘿...我打開了它,有圖有真相:

在中間一個猥瑣的地方找到了“歷史資料”,我點開了它,找的就是它:

嘿,就是它,我找到了部分歷史資料,而且裡面資料都很標準,完全符合我們時序預測的演算法,期號我們做主鍵,日期列也有..開獎號碼為預測列,嘿嘿..百度做的還是蠻可愛的!

別高興的太早,丫找到資料就牛了,這些資料隨便找個網站一大堆大堆的!

好吧,我們低調的打開了Office的Excel軟體,然後把這些資料搞到Excel中來:

點選匯入按鈕,新建一個Sheet來儲存資料,清理掉不需要的冗餘資料,得到標準的規範資料:

然後通過SQL Server自帶的匯入工具,順利的匯入到資料庫中,為了研究好這三個數,單個數字之間有沒有關聯性,為此我單獨建立了一張表,將這三個數字拆分開來研究,希望這樣得到的資料會準確一點點...以防被拍磚的風險,我們來看下建庫指令碼:

複製程式碼
SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[TicketResult](
    [開獎日期] [datetime] NULL,
    [期號] [float]  primary key not NULL,
    [開獎號碼] [nvarchar](255) NULL,
    [本期銷量] [float] NULL,
    [FirstNo] [int] NULL,
    [TwoNo] [int] NULL,
    [ThirdNo] [int] NULL
) ON [PRIMARY]

GO
複製程式碼

這個指令碼很土,很多地方不標準,玩過多年資料庫的銀們不要噴我,中文欄位名、沒建索引等等吧,為了演示方便我就先湊著用著。我們將Excel匯入到庫中通過語句插入到這張表中,這過程簡單的很,我們就不貼圖了。有問題的可以私信我,我們直接看結果:

資料有了,剩下的步驟就是開啟我們的解決方案,然後新建資料來源,然後新建資料來源檢視,然後新建資料探勘結構,具體的詳細步驟不清楚的可以參考我之前文章或者私信我,這裡我們只看一下新建挖掘結構的過程中的輸入、輸出和鍵的設定:

然後完成該模型的建立,我們來看看此模型方案:

到此我們的數挖掘模型已經建立完畢,然後部署下,然後處理下,我們就可以瀏覽結果了!

懷著沉重的心情,我悄悄的打開了“挖掘模型檢視器”,結果,你懂得...

你妹呀,這是神馬?一堆亂碼...一片混沌嘛...

但是、但是我不能對不起“大溼”的稱號,我要從中找到點神馬...哪怕是一點點蛛絲馬跡..我小心翼翼的選擇了第一個數字的預測:FirstNO:

從選擇第一個數字的預測圖我們可以看到,歷史結果值集中在中間值,以4為最佳值,並且以此值作為分割點向兩側逐漸減少出現次數,然後我通過點選順利的預測出來明天也就是2014年10月15號的第一個數字應該是4!...我去...好數字...這個數字出現概率最高,為了給自己挽回顏面,可愛的VS也將它作為明天最佳的預測值。

然後..然後我又看了其它數字的預測,通過上面的方法將明天的結果預測結果值儲存到了資料庫,我們來看:

我們點選來看執行結果:

哈哈...明天的彩票值我已經順利的預測出來了:看看...4、7、5!嘿嘿...就是這個值了..有興趣的童鞋可以去買了,中了算你的,不中也算你的...明天不中我還會贈送後天...大後天!。。。

其實經過上面的分析已經得到對於排列三這種彩票他是有規律就是出現的概率集中於中間值,也就是4,如果從長期來看買這塊資料肯定能賺。

然後我們將這部分值儲存到資料庫,然後拿著這部分勝利的資料,去到彩票網站買彩票去!

嘿嘿...接下來的事我就等著:升職、加薪、出任CEO、贏取白富美、走上人生巔峰.....哈哈...

我果斷的掏出了手機,進入到了彩票網站,選擇排列三這種彩票,準備購買:

4+7+5=16...哈哈,我利用“求和”這種方案就買16這個數字了!

但是我詳細看了看...

尼瑪!...選擇的數字得到的回報率是不一樣的!也就是說越選擇接近4的中獎概率高,但是得到的獎金回報率也少,選擇離4遠的數值中獎概率低,但是得到的獎金回報率也高!...

我那個去...

我的高富帥夢、我的大溼夢!.....

結語

呵呵...通過上面的分析基本上我們能看到時序演算法的好處,從上面的結果預測值來看..其實和他們官網給出的獎金方案還是有出入的,比如我預測求和值的大部分是16、14、17...這些值全部大於11...而根據它上面的圖片可以看到他們推薦的最高中獎數應該是10和11...返回金額都是9塊錢!

相關推薦

基於微軟案例資料結果預算+下期彩票預測

本篇我們將根據上一篇的預測過程詳細的給出預測結果值,形成一份可供具體參考的資料明細表。 應用場景介紹 作為Microsoft時序演算法的應用場景,在上一篇我們已經詳細介紹了,本篇就不再贅述,總結一下就是凡事要應用時間匯流排為依據,根據以往歷史事例記錄推測以後將要發生的結果值

基於微軟案例資料Microsoft 時序演算法

此演算法也是資料探勘演算法中比較重要的一款,因為所有的推算和預測都將利用於未來,而這所有的一切都將有一條時間線貫穿始終,而這將是時序演算法的側重點。 應用場景介紹 通過前幾篇文章的介紹,我們已經能預測出影響某種行為的因素有哪些,並且根據這些因素綜合挖掘出我們的最優客戶群體(

MADlib——基於SQL的資料解決方案(17)——迴歸Cox比例風險迴歸

一、Cox比例風險迴歸簡介        Cox比例風險迴歸模型(Cox’s proportional hazards regression model),簡稱Cox迴歸模型,由英國統計學家D.R.Cox於1972年提出,主要用於腫瘤和其它慢性病的預後分析,也可用於佇列研究的

MADlib——基於SQL的資料解決方案(21)——分類KNN

一、分類方法概要1.  分類的概念        資料探勘中分類的目的是學會一個分類函式或分類模型,該模型能把資料庫中的資料項對映到給定類別中的某一個。分類可描述如下:輸入資料,或稱訓練集(Training Set),是由一條條資料庫記錄(Record)組成的。每一條記錄包含

MADlib——基於SQL的資料解決方案(8)——資料探索描述性統計

        對資料進行統計是從定量的角度去探索資料,是最基本的資料探索方式,其主要目的是瞭解資料從統計學上反映的量的特徵,以便我們更好地認識這些將要被挖掘的資料。        我們先要清楚兩個關於統計學的基本概念:總體和樣本。統計的總體是人們研究物件的全體,又稱母體,如

MADlib——基於SQL的資料解決方案(26)——聚類k-means方法

        “物以類聚,人以群分”,其核心思想就是聚類。所謂聚類,就是將相似的事物聚集在一起,而將不相似的事物劃分到不同的類別的過程,是資料分析中十分重要的一種手段。比如古典生物學中,人們通過物種的形貌特徵將其分門別類,可以說就是一種樸素的人工聚類。如此,我們就可以將世界

《程式設計師的第一年》---------- 資料資料處理(C#基於熵的離散化演算法程式碼)

熵(entropy)是最常用的離散化度量之一。它由Claude Shannon在資訊理論和資訊增益概念的開創性工作中首次引進。基於熵的離散化是一種監督的、自頂向下的分裂技術。它在計算和確定分裂點(劃分屬性區間的資料值)時利用類分佈資訊。為了離散數值屬性A,該方法選擇A的具

資料售房資料分析1

最近再做一批關於售房的資料,感覺自己陷入一個死衚衕裡: 該批資料是儲存再postgresql裡面,是從某售房網站上爬下來的,以資料庫中的一列欄位作為儲存資料,該列欄位是以json的資料形式儲存的,這裡跟我打開了一個新大門,資料庫能儲存json資料格式的資料,而且postgresql還有一套專門的

資料十大經典演算法

國際權威的學術組織the IEEE International Conference on Data Mining (ICDM) 2006年12月評選出了資料探勘領域的十大經典演算法:C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, k

資料FP_Tree演算法實現

轉自http://www.cnblogs.com/zhangchaoyang/articles/2198946.html (格式複製之後有變化,建議直接點連結去部落格園看原文) python程式碼見https://github.com/yantijin/Lean_DataMining F

資料AdaBoost裝袋提升演算法

python3程式碼實現在https://github.com/yantijin/Lean_DataMining上,時間匆忙,敬請之處錯誤之處,謝謝! 以下內容轉自:https://blog.csdn.net/androidlushangderen/article/details/4363511

資料關聯規則Apriori演算法

一、Aoriori原始演算法: 頻繁挖掘模式與關聯規則 關聯規則兩個基本的指標(假設有事務A和事務B)   1、支援度(suport):計算公式如下        2、置信度(confidence):    關聯規則的挖掘過程:   1、設定最小支援度閾值,找出所有的頻繁項集且每個出現的次數要

零基礎入門大資料spark中的幾種map

今天再來說一下spark裡面的幾種map方法。前面的文章介紹過單純的map,但是spark還有幾種map值得對比一下,主要是下面幾種: map:普通的map flatMap:在普通map的基礎上多了一個操作,扁平化操作; mapPartitions:相對於分割槽P

零基礎入門大資料spark的rdd

本節簡單介紹一下spark下的基本資料結構RDD,方便理解後續的更多操作。 那麼第一個問題,什麼是rdd。我們知道,大資料一般儲存在分散式叢集裡面,那麼你在對其進行處理的時候總得把它讀出來吧,讀出來後總得把它存成某種格式的檔案吧,就好比程式語言裡面的,這個資料是陣列,那麼你可以以陣列

零基礎入門大資料reduce方法

上節介紹過大資料裡面(以spark為例)最為基礎典型的操作:map方法,map方法直白的理解就是一個分散式接受處理函式的方法,形式如map(fun),map方法本身不做處理,沒有map方法,裡面的函式fun就是一個單機的處理函式,有了map,相當於就把這個函式複製到多臺機器上,每臺機器同

資料倉庫與資料Apriori演算法例項

最近剛上了資料探勘這門課,老師講了兩個演算法,即Apriori演算法和FP-growth演算法,然後佈置了上機作業,挖掘一個有8萬行的記錄的retail.dat,需要從中找出強規則,即同時滿足最小支援度和最小置信度的規則。 Apriori演算法 在這裡給出一個實現找出所有頻繁模式集的

資料Apriori演算法

python3程式碼如下: #coding = utf-8 import numpy #from python_util import fileread """ 程式所需部分: 建立初始的候選集 根據Lk產生Lk+1

資料方差分析實驗

本部落格根據非常好的excel資料而編寫,使用python語言操作,預計使用一週的時間更新完成。需要《非常好的excel資料》word文件,歡迎發郵件給[email protected],免費發放。這篇部落格對應《非常好的excel資料》裡的第5章節。 1.1 單因素方差分析

資料擬合優度檢驗

本部落格根據非常好的excel資料而編寫,使用python語言操作,預計使用一週的時間更新完成。需要《非常好的excel資料》word文件,歡迎發郵件給[email protected],免費發放。這篇部落格對應《非常好的excel資料》裡的第4章節。 自由度v=(行數-1)(

資料Scala零基礎學習(一)

第5章 函式5.1函式程式程式碼:object section5_1 extends App { // def gcd(x:Int,y:Int):Int=if(x%y==0) y else gcd(