用線性迴歸無編碼實現文章瀏覽數預測
我純粹使用SQL和配置實現了一個更為複雜一些的,計算文章詞彙的tf/idf值,將瀏覽數作為預測值,使用線性迴歸演算法進行模型訓練的示例。幫助大家更好的瞭解StreamingPro對演算法的優秀支援。這篇文章的示例將會跑在Spark 2.0 上了。為了方便大家體驗,我已經將Spark 安裝包,StreamignPro,以及分詞包都準備好,大家下載即可。
準備工作
下載
下載
下載分詞包
我們假設你下載的StreamingPro,ansi-seg包在/tmp目錄下。然後將Spark 2.0 解壓,進入主目錄。
複製如下模板
我已經發布了三個配置檔案,分別計算:
詞彙的 idf 值 ,
給每個詞彙生成一個唯一的數字標示,
使用線性迴歸演算法進行訓練,
PS : 有道筆記有時候第一次刷不出來,你重新整理下就好。
複製儲存三個檔案:
/tmp/idf.json
/tmp/term-index.json
/tmp/lr-train.json
本機執行
生成idf 檔案:
cd $SPARK_HOME./bin/spark-submit --class streaming.core.StreamingApp --master local[2] --name test --jars /tmp/ansj_seg-5.0.0-all-in-one.jar /tmp/streamingpro-0.3.3-SNAPSHOT-online-mllib-2.0.0.jar -streaming.name test -streaming.platform spark -streaming.job.file.path file:///tmp/idf.json
生成內容會儲存成Parquet檔案。在/tmp/idf 目錄下可以看到具體檔案。
接著生成 term index ,檔案位於 /tmp/term-with-index,最後進行模型訓練,訓練好的模型在/tmp/lr-model
後續只要在Spark Streaming中載入,即可完成流式計算。
配置檔案簡要說明
以lr-train.json為例,大體框架如下:
{ "lr1": { "desc": "LR模型訓練Job", "strategy": "streaming.core.strategy.SparkStreamingStrategy", "compositor": [ ] }, "udf_register": { "desc": "透過這個方式可以註冊你自己開發的udf函式", "strategy": "streaming.core.strategy.SparkStreamingRefStrategy", "compositor": [ ] }, "term_index_ref_table": { "desc": "在這裡申明表,可以在job中被引用", "strategy": "streaming.core.strategy.SparkStreamingRefStrategy", "algorithm": [], "ref": [], "compositor": [ ] }, "term_idf_ref_table": { "desc": "在這裡申明表,可以在job中被引用", "strategy": "streaming.core.strategy.SparkStreamingRefStrategy", "algorithm": [], "ref": [], "compositor": [ ] } }
這裡有一個job,兩個關聯表,一個UDF函式註冊模組。我在配置檔案的描述中已經有說明。job 是一個可執行的main函式,你可以這麼理解。關聯表申明後可以直接在job的sql中使用。UDF函式註冊模組則可以使得你很容易擴充套件SQL的功能。
他們唯一的區別是,Job 的strategy 是 SparkStreamingStrategy
,而其他非Job則是SparkStreamingRefStrategy
。
因為一個配置檔案裡可能有多個Job,每個Job引用的關聯表也是不一樣,你需要顯示指定引用,在Job 的ref中申明即可:
"lr1": { "strategy": "streaming.core.strategy.SparkStreamingStrategy", "ref": [ "udf_register", "term_index_ref_table", "term_idf_ref_table" ], "compositor": [
這樣框架自動為你準備好關聯引用,註冊UDF函式,然後在lr1 這個job中就可以使用了。比如lr裡的parse 函式就是透過udf_register模組提供的。
之後就是定義輸入,執行的SQL,以及輸出(儲存或者模型引擎)。 SQL在案例中你可以看到,可以非常複雜,多個SQL模組之間可以互相作用,透過多條SQL實現一個複雜的邏輯。比如我們這裡試下了tf/idf計算等功能。
作者:祝威廉
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1795/viewspace-2819308/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 採用線性迴歸實現訓練和預測(Python)Python
- 【機器學習】線性迴歸預測機器學習
- TensorFlow實現線性迴歸
- 【機器學習】線性迴歸sklearn實現機器學習
- pytorch實現線性迴歸PyTorch
- 預測演算法之多元線性迴歸演算法
- python實現線性迴歸之簡單迴歸Python
- 線性迴歸 go 語言實現Go
- 【機器學習】線性迴歸python實現機器學習Python
- 線性迴歸實戰
- 基於MXNET框架的線性迴歸從零實現(房價預測為例)框架
- Pytorch 實現簡單線性迴歸PyTorch
- 機器學習--線性迴歸--梯度下降的實現機器學習梯度
- 利用TensorFlow實現多元線性迴歸
- 利用TensorFlow實現線性迴歸模型模型
- 使用線性迴歸模型預測黃金ETF價格模型
- 線性迴歸-程式碼庫
- Laravel 實現文章瀏覽量次數統計Laravel
- 機器學習之線性迴歸(純python實現)機器學習Python
- 線性迴歸:最小二乘法實現
- 【pytorch_5】線性迴歸的實現PyTorch
- 線性迴歸基礎程式碼
- Alink漫談(十) :線性迴歸實現 之 資料預處理
- 機器學習實戰專案-預測數值型迴歸機器學習
- 機器學習實戰(一)—— 線性迴歸機器學習
- 數學推導+Python實現機器學習演算法:線性迴歸Python機器學習演算法
- 預測數值型資料:迴歸
- 【深度學習 01】線性迴歸+PyTorch實現深度學習PyTorch
- 機器學習-線性迴歸機器學習
- 1.3 - 線性迴歸
- 用Python實現線性迴歸,8種方法哪個最高效?Python
- 機器學習 | 線性迴歸與邏輯迴歸機器學習邏輯迴歸
- 機器學習(二):理解線性迴歸與梯度下降並做簡單預測機器學習梯度
- 機器學習入門:多變數線性迴歸機器學習變數
- 機器學習之線性迴歸機器學習
- 多元線性迴歸模型模型
- 機器學習整理(線性迴歸)機器學習
- 線性迴歸總結