• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Spark框架與ELO算法的籃球運(yùn)動(dòng)成績(jī)預(yù)測(cè)分析研究

      2021-02-11 06:24:16王瑞華宋薇
      科技創(chuàng)新導(dǎo)報(bào) 2021年24期
      關(guān)鍵詞:數(shù)據(jù)分析籃球

      王瑞華 宋薇

      摘要:隨著籃球賽事的廣泛開展,傳統(tǒng)數(shù)據(jù)處理分析已不能滿足籃球運(yùn)動(dòng)訓(xùn)練指標(biāo)優(yōu)化和培訓(xùn)狀態(tài)評(píng)估需求,制約了籃球數(shù)據(jù)的數(shù)字化管理與發(fā)展進(jìn)程。本文基于Spark框架與云計(jì)算pyspark接口技術(shù)構(gòu)建數(shù)據(jù)計(jì)算平臺(tái),通過統(tǒng)計(jì)網(wǎng)站與Scrapy抓取框架獲取運(yùn)動(dòng)數(shù)據(jù),利用Logistic Distribution與ELO算法實(shí)現(xiàn)成績(jī)預(yù)測(cè),提高籃球運(yùn)動(dòng)大數(shù)據(jù)運(yùn)算與分析的效率。為運(yùn)動(dòng)員、教練員、體育運(yùn)動(dòng)管理者提供教學(xué)訓(xùn)練與競(jìng)賽決策支持。

      關(guān)鍵詞:籃球 數(shù)據(jù)分析 Spark ELO

      Research on Basketball Performance Prediction Analysis Based on Spark Framework and ELO Algorithm

      WANG Ruihua1 ?SONG Wei2

      (Hubei Open University,Wuhan,Hubei Province,430074 China; Wuhan Sports University, Wuhan,Hubei Province,430079China)

      Abstract:With the extensive development of basketball events, traditional data processing and analysis can no longer meet the needs of basketball training index optimization and training status evaluation, which has restricted the digital management and development process of basketball data. This paper builds a data computing platform based on Spark framework and cloud computing pyspark interface technology, obtains sports data through statistical website and Scrapy grab framework, and realizes performance prediction by Logistic Distribution and ELO algorithm, improving the efficiency of basketball big data operation and analysis. Provide teaching training and competition decision support for athletes, coaches and sports managers.

      Key Words: Basketball; Date analysis; Spark; ELO

      研究背景

      隨著籃球賽事的廣泛開展,傳統(tǒng)數(shù)據(jù)處理分析方法已無法實(shí)現(xiàn)籃球運(yùn)動(dòng)數(shù)據(jù)的深入挖掘與分析需求,制約了訓(xùn)練指標(biāo)優(yōu)化和運(yùn)動(dòng)員訓(xùn)練狀態(tài)評(píng)估的數(shù)字化管理進(jìn)程?;@球運(yùn)動(dòng)數(shù)據(jù)分析研究,也因此成為體育統(tǒng)計(jì)方向的研究[1]。當(dāng)前籃球運(yùn)動(dòng)大數(shù)據(jù)分析存在以下問題。

      (1)缺乏對(duì)數(shù)據(jù)計(jì)算分析平臺(tái)與框架的應(yīng)用研究[2]。隨著計(jì)算機(jī)存儲(chǔ)設(shè)備與運(yùn)動(dòng)數(shù)據(jù)采集設(shè)備功能日益強(qiáng)大,籃球運(yùn)動(dòng)數(shù)據(jù)存儲(chǔ)量與計(jì)算量都在不斷飛速增長(zhǎng),目前的數(shù)據(jù)分析平臺(tái)無法滿足籃球運(yùn)動(dòng)大數(shù)據(jù)分析需求[3]。

      (2)缺乏對(duì)深度學(xué)習(xí)建模與機(jī)器學(xué)習(xí)算法研究,局限于個(gè)別動(dòng)作數(shù)據(jù)查詢和競(jìng)技水平統(tǒng)計(jì)描述,對(duì)數(shù)據(jù)的挖掘與分析不夠深入,無法提供籃球運(yùn)動(dòng)信息預(yù)測(cè)與策略支持[4]。

      (3)缺乏對(duì)數(shù)據(jù)可視化技術(shù)的運(yùn)動(dòng)訓(xùn)練應(yīng)用研究,當(dāng)前運(yùn)動(dòng)數(shù)據(jù)可視化技術(shù)主要應(yīng)用于體育新聞傳播[5],著重娛樂性和趣味性,而用于運(yùn)動(dòng)訓(xùn)練領(lǐng)域的可視化工具對(duì)人工操作依賴程度較高,因此存在可視化結(jié)果輸出效率低等問題[6]。

      研究方法

      2.1構(gòu)建Spark大數(shù)據(jù)分析開源計(jì)算平臺(tái)

      Hadoop MapReduce技術(shù)廣泛應(yīng)用于籃球運(yùn)動(dòng)大數(shù)據(jù)平臺(tái),但由于MapReduce需要將任務(wù)產(chǎn)生的中間結(jié)果寫回磁盤,需要從網(wǎng)絡(luò)中的各個(gè)節(jié)點(diǎn)進(jìn)行數(shù)據(jù)拷貝,耗費(fèi)大量的時(shí)間在網(wǎng)絡(luò)磁盤輸出過程中。因此Hadoop MapReduce技術(shù)實(shí)現(xiàn)大數(shù)據(jù)分析與計(jì)算的運(yùn)算速度有限,只適合離線的數(shù)據(jù)計(jì)算任務(wù),從而制約了籃球運(yùn)動(dòng)數(shù)據(jù)實(shí)時(shí)分析與計(jì)算。為解決此問題,美國(guó)加州伯克利AMPLAB提出基于Hadoop MapReduce開源接口的并行計(jì)算框架Spark。Spark框架直接在內(nèi)存中保存中間運(yùn)行數(shù)據(jù)結(jié)果,因此進(jìn)一步提高了大數(shù)據(jù)挖掘與分析中的數(shù)據(jù)迭代算法計(jì)算效率。如圖1所示,Spark平臺(tái)支持多場(chǎng)景的通用大數(shù)據(jù)計(jì)算,用于解決批處理與交互查詢等核心問題,數(shù)據(jù)的存儲(chǔ)在生產(chǎn)環(huán)境中由Hadoop分布式文件系統(tǒng)HDFS承擔(dān)。Spark可以從多數(shù)據(jù)源讀取數(shù)據(jù),并且擁有不斷發(fā)展的機(jī)器學(xué)習(xí)庫(kù)和圖計(jì)算庫(kù)供開發(fā)者使用。

      2.1.1彈性分布數(shù)據(jù)集RDD

      為避免計(jì)算的中間結(jié)果會(huì)被重復(fù)使用,Spark提供了基于RDD cache機(jī)制和checkpoint機(jī)制來支持容錯(cuò)。通過將RDD數(shù)據(jù)集的操作結(jié)果緩沖到內(nèi)存中,并直接從內(nèi)存中輸入下一次操作,從而省去了大量Map Reduce磁盤操作,提升了機(jī)器學(xué)習(xí)中迭代算法與交互式數(shù)據(jù)挖掘的計(jì)算效率。本文以文件形式從Hadoop文件系統(tǒng)生成RDD,通過RDD的to DebugString來查看其遞歸的依賴信息,核心代碼如下:

      // 創(chuàng)建RDD

      def RDDtextFile(path: String, minSplits: Int = defaultMinSplits): RDD[String] = {

      hadoopFile(path, classOf[TextInputFormat], classOf[LongWritable],

      classOf[Text], minSplits) .map(pair => pair2.toString) }

      // 創(chuàng)建HadoopRDD

      new HadoopRDD(this, conf, inputFormatClass, keyClass, valueClass, minSplits)

      2.1.2 pyspark接口應(yīng)用

      依據(jù)計(jì)算需要,Spark內(nèi)核會(huì)繪制一張計(jì)算路徑有向無環(huán)圖(DAG)?;贒AG圖,Spark內(nèi)核將計(jì)算過程劃分成任務(wù)集stage,然后將stage任務(wù)提交到計(jì)算節(jié)點(diǎn)實(shí)施計(jì)算。基于Spark框架下Python編程接口pyspark實(shí)現(xiàn)python與java的互操作,核心代碼如下:

      from pyspark import SparkContext

      sc = SparkContext("local", "MyPySparkJob Name", pyFiles=['MyPySparkFile.py', 'MyPySparklib.zip', 'app.egg'])

      words = sc.textFile("/user/MyPySparkshare/MyPySparkdict/words")

      words.filter(lambda w: w.startswith("spar")).take(5)

      2.2.籃球運(yùn)動(dòng)數(shù)據(jù)獲取

      2.2.1使用統(tǒng)計(jì)網(wǎng)站數(shù)據(jù)

      獲取Basketball Reference.com網(wǎng)站數(shù)據(jù)[6],包括:每支隊(duì)伍平均每場(chǎng)比賽的表現(xiàn)統(tǒng)計(jì);每支隊(duì)伍的對(duì)手平均每場(chǎng)比賽的表現(xiàn)統(tǒng)計(jì);綜合統(tǒng)2019-2020年NBA常規(guī)賽以及季后賽的每場(chǎng)比賽的比賽數(shù)據(jù)。使用的是以下三個(gè)數(shù)據(jù)表格。

      Team Per Game Stats:每支隊(duì)伍平均每場(chǎng)比賽的表現(xiàn)統(tǒng)計(jì),包括排名、參與場(chǎng)數(shù)、平均比賽時(shí)間、投球命中次數(shù)(三分球、二分球、罰球)、投籃次數(shù)、投球命中率、籃板球總數(shù)、助攻、搶斷、封蓋、失誤、犯規(guī)、得分。

      Opponent Per Game Stats:所遇到的對(duì)手平均每場(chǎng)比賽的統(tǒng)計(jì)信息,所包含的統(tǒng)計(jì)數(shù)據(jù)與 Team Per Game Stats 中相同,只是代表的是該球隊(duì)對(duì)應(yīng)的對(duì)手的統(tǒng)計(jì)信息。

      Miscellaneous Stats:綜合統(tǒng)計(jì)數(shù)據(jù),包括排名、隊(duì)員的平均年齡、勝利次數(shù)、失敗次數(shù)、基于畢達(dá)哥拉斯理論計(jì)算的贏的概率、基于畢達(dá)哥拉斯理論計(jì)算的輸?shù)母怕?、(添加)贏球次數(shù)的平均間隔、評(píng)判對(duì)手選擇與其球隊(duì)或是其他球隊(duì)的難易程度對(duì)比(0為平均線,可以為正負(fù)數(shù))、每100個(gè)比賽回合中的進(jìn)攻比例、每100個(gè)比賽回合中的防守比例、48min內(nèi)大概會(huì)進(jìn)行多少個(gè)回合、罰球次數(shù)所占投籃次數(shù)的比例、三分球投籃占投籃次數(shù)的比例、二分球、三分球和罰球的總共命中率、有效的投籃百分比(含二分球、三分球)、每100場(chǎng)比賽中失誤的比例、球隊(duì)中平均每個(gè)人的進(jìn)攻籃板的比例、罰球所占投籃的比例、對(duì)手投籃命中比例、對(duì)手的失誤比例、球隊(duì)平均每個(gè)球員的防守籃板比例、對(duì)手的罰球次數(shù)占投籃次數(shù)的比例。

      2.2.2基于Scrapy抓取框架與AJAX技術(shù)

      AJAX(Asynchronous JavaScript And XML),即使用JS語言與服務(wù)器進(jìn)行異步交互,傳輸數(shù)據(jù)格式為XML。AJAX除了支持異步交互,另一個(gè)特點(diǎn)就是瀏覽器頁面的局部刷新,由于不需要重載整個(gè)頁面,不僅提高了性能,還提升了用戶體驗(yàn)。JSON對(duì)象是JS對(duì)象的子集,它包含JS中的6種數(shù)據(jù)類型:number、string、Boolean、array、null、object。JSON字符串格式簡(jiǎn)單且字符量小,與XML相比在網(wǎng)絡(luò)傳輸方面更具優(yōu)勢(shì)。目前,JSON已經(jīng)成為各大網(wǎng)站交換數(shù)據(jù)的標(biāo)準(zhǔn)格式。

      基于Python中json模塊,通過json.dumps()方法,可以將python中的基本數(shù)據(jù)類型序列化為一種標(biāo)準(zhǔn)格式的字符串,進(jìn)而可以存儲(chǔ)或通過網(wǎng)絡(luò)傳輸。通過json.loads()方法,又可以將這些標(biāo)準(zhǔn)格式的字符串反序列化為原數(shù)據(jù)類型。給服務(wù)器發(fā)送用戶輸入的數(shù)據(jù),服務(wù)器將驗(yàn)證的結(jié)果用JSON格式的字符串發(fā)回響應(yīng),前端用JS來解析JSON數(shù)據(jù)。

      Python語言體系使用Scrapy框架技術(shù)來抓取web站點(diǎn)與提取數(shù)據(jù),實(shí)現(xiàn)數(shù)據(jù)挖掘與數(shù)據(jù)監(jiān)測(cè)。我們采用AJAX技術(shù)獲取球員鏈接的網(wǎng)頁,再基于Scrapy框架進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)抓取,獲得球員數(shù)據(jù),導(dǎo)出CSV文件代碼如下:

      Import requests

      Url=”https://cba.hupu.com/teams/shanghai”

      Del getHtml(url)

      Try:

      R=request.get(url)

      raise_for_status()

      encoding=R.apparent_encoding

      Return R.text

      Except:

      Return ‘’

      2.3基于Logistic Distribution與ELo算法實(shí)現(xiàn)成績(jī)預(yù)測(cè)

      2.3.1 ELO評(píng)分算法

      ELO等級(jí)分制度是由匈牙利裔美國(guó)物理學(xué)家Elo創(chuàng)建的一個(gè)衡量各類對(duì)弈活動(dòng)選手水平的評(píng)分方法,是當(dāng)今對(duì)弈水平評(píng)估的公認(rèn)權(quán)威方法,很多競(jìng)技運(yùn)動(dòng)都會(huì)采取 Elo 等級(jí)分制度對(duì)選手進(jìn)行等級(jí)劃分,如足球、籃球與棒球比賽。根據(jù)Logistic Distribution計(jì)算 PK 雙方(A 和 B)對(duì)各自的勝率期望值計(jì)算公式。R_A表示A當(dāng)前的積分,R_B表示B當(dāng)前的積分,E_A表示A當(dāng)前的勝率期望值,E_B表示B當(dāng)前的勝率期望值,計(jì)算公式如下:

      E_(A=1/(1+〖10〗^(((R_B-R_A))?400) ))

      E_(B=1/(1+〖10〗^(((R_A-R_B))?400) ))

      S_A表示實(shí)際勝負(fù)值(勝為1,平為0.5,負(fù)為0),如果S_A與A當(dāng)前的勝率期望值E_A不相同,則A的Elo評(píng)分需要重新計(jì)算為R_A^new,計(jì)算公式如下:

      R_A^new=R_A^old+K(S_A-R_A^old)

      其中 K 值是一個(gè)常量系數(shù),K值的大小直接關(guān)系到一局競(jìng)技活動(dòng)的結(jié)束,通常水平越高的比賽中其K值應(yīng)越小,從而避免少數(shù)幾場(chǎng)比賽就能改變頂級(jí)隊(duì)伍的積分排名。為讓積分盡可能保持標(biāo)準(zhǔn)正態(tài)分布,將歷史積分值R_A^old分為三個(gè)區(qū)間,K分別取值16、24、32。

      2.3.2 特征向量提取與回歸模型建立

      獲取數(shù)據(jù)后,利用每支隊(duì)伍過去的比賽情況和Elo等級(jí)分來判斷每支比賽隊(duì)伍的可勝概率。在評(píng)價(jià)到每支隊(duì)伍過去的比賽情況時(shí),將使用到Team Per Game Stats、Opponent Per Game Stats和Miscellaneous Stats(以下簡(jiǎn)稱為 T、O和M表)這3個(gè)表格的數(shù)據(jù),作為代表比賽中某支隊(duì)伍的比賽特征。由兩支隊(duì)伍的以往比賽統(tǒng)計(jì)情況和兩個(gè)隊(duì)伍各自的Elo等級(jí)分構(gòu)成。使用 Python 的pandas、numpy、scipy和sklearn庫(kù)Logistic Regression方法建立回歸模型,計(jì)算每支比賽隊(duì)伍的Elo socre,利用這些基本統(tǒng)計(jì)數(shù)據(jù)評(píng)價(jià)每支隊(duì)伍過去的比賽情況,預(yù)測(cè)結(jié)果將顯示勝算較大一方的隊(duì)伍能夠贏另外一方的概率。研究思路如下。

      (1)數(shù)據(jù)初始化,設(shè)置回歸訓(xùn)練時(shí)所需用到的參數(shù)變量,從T、O和M表格中讀入數(shù)據(jù),去除一些無關(guān)數(shù)據(jù)并將這三個(gè)表格通過Team屬性列進(jìn)行連接。

      (2)獲取每支隊(duì)伍的Elo Score等級(jí)分函數(shù),當(dāng)在開始沒有等級(jí)分時(shí),將其賦予初始base_elo值。

      (3)計(jì)算每支隊(duì)伍的Elo等級(jí)分,假設(shè)獲勝方提高的Elo等級(jí)分與失敗方降低的Elo等級(jí)分?jǐn)?shù)值相等。為了體現(xiàn)主場(chǎng)優(yōu)勢(shì),主場(chǎng)隊(duì)伍的Elo等級(jí)分在原有基礎(chǔ)上增加100。

      (4)基于數(shù)據(jù)內(nèi)容前三項(xiàng)和Elo等級(jí)分建立每場(chǎng)比賽的數(shù)據(jù)集。

      (5)在main 函數(shù)中調(diào)用這些數(shù)據(jù)處理函數(shù),使用sklearn中的LogisticRegression函數(shù)建立回歸模型。

      (6)利用訓(xùn)練好的模型對(duì)比賽結(jié)果進(jìn)行預(yù)測(cè),利用模型對(duì)一場(chǎng)新的比賽進(jìn)行勝負(fù)判斷,并返回其勝利的概率。

      (7)在CSV文件中保存預(yù)測(cè)結(jié)果。

      研究結(jié)果與分析

      3.1 球隊(duì)贏分概率預(yù)測(cè)

      使用Python語言中pandas、numpy、scipy和sklearn庫(kù),計(jì)算每支NBA比賽隊(duì)伍的Elo socre,利用這些基本統(tǒng)計(jì)數(shù)據(jù)評(píng)價(jià)每支隊(duì)伍過去的比賽情況,并且根據(jù)國(guó)際等級(jí)劃分方法Elo Score對(duì)隊(duì)伍現(xiàn)在的戰(zhàn)斗等級(jí)進(jìn)行評(píng)分,最終結(jié)合這些不同隊(duì)伍的特征判斷在一場(chǎng)比賽中,哪支隊(duì)伍能夠占到優(yōu)勢(shì)。預(yù)測(cè)結(jié)果將顯示勝算較大一方的隊(duì)伍能夠贏另外一方的概率,如表1所示。

      結(jié)論

      在下一步的研究工作中,為避免計(jì)算代價(jià)異常增大的突變,將基于Spark框架,進(jìn)一步探索緩存與廣播技術(shù),提升計(jì)算并行度,并通過預(yù)處理降低預(yù)定義類的訓(xùn)練依賴性。本文的研究中給出勝算較大一方的隊(duì)伍能夠贏另外一方的概率,由于性能評(píng)價(jià)數(shù)據(jù)量有限,為實(shí)現(xiàn)更加準(zhǔn)確和系統(tǒng)的判斷,需要從統(tǒng)計(jì)數(shù)據(jù)網(wǎng)站中獲取更加全面和系統(tǒng)的數(shù)據(jù),并結(jié)合不同的回歸、決策機(jī)器學(xué)習(xí)模型,搭建一個(gè)更加全面、預(yù)測(cè)準(zhǔn)確率更高的模型。為此,建議中國(guó)職業(yè)籃球聯(lián)賽(CBA)能順應(yīng)大數(shù)據(jù)時(shí)代的發(fā)展趨勢(shì),利用先進(jìn)的數(shù)據(jù)采集與統(tǒng)計(jì)設(shè)備,健全我國(guó)籃球運(yùn)動(dòng)數(shù)據(jù)統(tǒng)計(jì)類型,加強(qiáng)競(jìng)技運(yùn)動(dòng)高階數(shù)據(jù)的統(tǒng)計(jì)[7],為球隊(duì)組建、教練用人和人才培養(yǎng)提供科學(xué)的指導(dǎo)。

      參考文獻(xiàn)

      [1]馬振嘉.人工智能在籃球運(yùn)動(dòng)中的運(yùn)用分析[J].延安大學(xué)學(xué)報(bào):自然科學(xué)版,2021,40(1):109-112.

      [2]康冬陽,王曉蓉.大數(shù)據(jù)時(shí)代背景下洛陽市高?;@球隊(duì)建設(shè)的促進(jìn)研究[J].體育科技,2020,41(6):117-118

      [3]高國(guó)賢,練碧貞,任弘.大數(shù)據(jù)時(shí)代我國(guó)籃球運(yùn)動(dòng)員選材理論范式危機(jī)及路徑轉(zhuǎn)換[J].沈陽體育學(xué)院學(xué)報(bào),2020,39(2):101-107.

      [4]張銘鑫,王新雷,練碧貞,等.“全數(shù)據(jù)”驅(qū)動(dòng)下籃球教練員科學(xué)決策的案例分析——以2018-2019賽季CBA聯(lián)賽廣東男籃為例[J].成都體育學(xué)院學(xué)報(bào),2020,46(6):100-106.

      [5]楊瑩,易卓.大數(shù)據(jù)時(shí)代下籃球運(yùn)動(dòng)的發(fā)展——以銅仁市為例[J].體育世界(學(xué)術(shù)版),2020(3):31-32.

      [6]單曙光.籃球大數(shù)據(jù)[M].北京:世界圖書出版公司,2017.99-120.

      [7]蔣雪辰,左小五,陳勝,等.基于因子分析和K-Means算法對(duì)NBA得分后衛(wèi)的功能性分析[J].體育研究與教育,2020,35(5):73-79.

      猜你喜歡
      數(shù)據(jù)分析籃球
      籃球36計(jì)之瞞天過海
      NBA特刊(2018年14期)2018-08-13 08:51:50
      籃球
      幼兒100(2018年13期)2018-05-11 05:34:49
      籃球控
      我校如何利用體育大課間活動(dòng)解決男生引體向上這個(gè)薄弱環(huán)節(jié)
      Excel電子表格在財(cái)務(wù)日常工作中的應(yīng)用
      淺析大數(shù)據(jù)時(shí)代背景下的市場(chǎng)營(yíng)銷策略
      新常態(tài)下集團(tuán)公司內(nèi)部審計(jì)工作研究
      淺析大數(shù)據(jù)時(shí)代對(duì)企業(yè)營(yíng)銷模式的影響
      基于讀者到館行為數(shù)據(jù)分析的高校圖書館服務(wù)優(yōu)化建議
      科技視界(2016年22期)2016-10-18 14:37:36
      我愛籃球
      文安县| 松溪县| 庆安县| 晋中市| 饶河县| 宁夏| 江达县| 军事| 竹溪县| 亳州市| 榕江县| 左贡县| 襄垣县| 鄢陵县| 富源县| 汤阴县| 甘泉县| 永城市| 海口市| 陕西省| 清镇市| 延吉市| 镇康县| 大方县| 中西区| 霍州市| 顺义区| 清涧县| 仪陇县| 鄂伦春自治旗| 无棣县| 陈巴尔虎旗| 富顺县| 静乐县| 安阳市| 东城区| 明水县| 江山市| 嘉祥县| 鄂伦春自治旗| 云霄县|