日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Flink on Zeppelin (4) - 机器学习篇

發(fā)布時(shí)間:2024/8/23 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Flink on Zeppelin (4) - 机器学习篇 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

今天我來講下如何在 Zeppelin 里做機(jī)器學(xué)習(xí)。機(jī)器學(xué)習(xí)的重要性我就不多說了,我們直奔主題。

Flink 在機(jī)器學(xué)習(xí)這個(gè)領(lǐng)域發(fā)力較晚,社區(qū)版沒有一個(gè)完整的機(jī)器學(xué)習(xí)算法庫(kù)可以用,Alink[1]是目前 Flink 生態(tài)圈相對(duì)比較完整的機(jī)器學(xué)習(xí)算法庫(kù),Alink 也在往 Flink 社區(qū)貢獻(xiàn)的路上。今天我主要講的就是如何在 Zeppelin 里使用 Alink。

為什么在 Zeppelin 平臺(tái)使用 Alink

Zeppelin 已經(jīng)很好的集成了 Flink,在 Zeppelin 中使用 Alink 可以充分利用 Zeppelin 集成 Flink 所提供的特性,包括:

  • 支持豐富的執(zhí)行模式:Local/Remote/Yarn
  • 支持對(duì)接 Hive
  • 支持 UDF (Scala,Python)
  • 支持 SQL (Batch SQL, Streaming SQL)
  • 支持可視化

有關(guān) Flink on Zeppelin 的具體特性支持可以參考下面的文章和釘釘直播視頻。

Flink on Zeppelin 文章系列:

  • Flink on Zeppelin(1)入門篇
  • Flink on Zeppelin(2)Batch 篇
  • Flink on Zeppelin(3)Streaming 篇

Flink on Zeppelin 直播系列:

  • Flink on Zeppelin: 極致體驗(yàn)(1) 入門 + Batch
    https://ververica.cn/developers/flink-training-course3/
  • Flink on Zeppelin: 精致體驗(yàn)(2) Streaming + 高級(jí)應(yīng)用
    https://ververica.cn/developers/flink-training-course3/

準(zhǔn)備工作

首先你需要安裝 Zeppelin + Flink + Alink:

  • 安裝 Zeppelin 和 Flink,請(qǐng)參考 Flink on Zeppelin 入門篇
  • 運(yùn)行下面的命令安裝 pyalink
pip install pyalink
  • 安裝 Alink jar 包

    • 安裝完 pyalink 之后,你可以在 python 目錄里找到 Alink 的 jar 包,然后把這些 jar 包 copy 到 Flink 的 lib 目錄下,這是我的機(jī)器上的 jar 包位置:

驗(yàn)證 Alink

現(xiàn)在你可以就可以在 Zeppelin 里運(yùn)行 Alink 了,有關(guān) Alink 的具體用法我就不再詳述,大家可以參考1。首先我們來運(yùn)行下面的代碼來驗(yàn)證下前面的準(zhǔn)備工作是否正確完成,是否能在 Zeppelin 里運(yùn)行 Alink。

如果你看到了下面的輸出,那么說明 Alink 已經(jīng)正確安裝。

Warning: useCustomEnv will do nothing, since useCustomEnv is used to initialize MLEnv.a b 0 1 2 1 2 5 2 3 1

上面最重要的一行代碼是這行:

mlenv = useCustomEnv(gateway,b_env,bt_env_2, s_env, st_env_2)

mlenv 是 Alink 的入口,b_env, bt_env_2, s_env, st_env_2 是 Zeppelin 為 Flink 創(chuàng)建的變量(代表 ExecutionEnvironment,BatchTableEnvironment, StreamExecutionEnvironment, StreamTableExecutionEnvironment)。這里的 bt_env_2 和 st_env_2 代表支持 Flink Planner 的 TableEnvironment,因?yàn)?Alink 目前是基于 DataSet 的,只支持 Flink Planner,所以這里需要用 bt_env_2, st_env_2。(具體可參考Batch篇)

Logsitic Regression

接下來我會(huì)以 Alink 的 Logstic Regression 算法來演示如何在 Zeppelin 中使用 Alink。在這個(gè) demo 中,我會(huì)選用 bank 數(shù)據(jù),這也是我在 Batch 篇中使用的數(shù)據(jù)。機(jī)器學(xué)習(xí)的模型訓(xùn)練往往只是整個(gè)機(jī)器學(xué)習(xí)任務(wù)的一小步,在做機(jī)器學(xué)習(xí)之前往往需要清理數(shù)據(jù),數(shù)據(jù)分析等等。這里的 Bank 數(shù)據(jù)就是我的 Batch 篇中用 Flink 引擎清理過的數(shù)據(jù)。

bank 數(shù)據(jù):
https://archive.ics.uci.edu/ml/datasets/bank+marketing

Step 1. 定義訓(xùn)練數(shù)據(jù)+測(cè)試數(shù)據(jù)

Step 2. 定義訓(xùn)練特征和目標(biāo)

Step 3. 構(gòu)建 Pipeline

運(yùn)行 Step 1 和 Step 2 都會(huì)非常快,因?yàn)闆]有觸發(fā) Flink Job,Step 3 會(huì)觸發(fā) Flink Job,開始真正的機(jī)器學(xué)習(xí)訓(xùn)練,右上角你會(huì)看到 Flink 的 Job Link。

Step 4. 查看 Model Metrics

訓(xùn)練模型結(jié)束之后只是整個(gè)機(jī)器學(xué)習(xí)任務(wù)的一小步,之后你往往需要反復(fù)修改代碼來改進(jìn)模型,查看模型的 Metrics 就是其中很重要的一步,從模型的 Metrics 之中你往往可以看出一些端倪,給改進(jìn)模型尋找方向。

■ Step 5. 錯(cuò)誤數(shù)據(jù)診斷

除了查看 Model Metrics,你還可以看看那些沒有被正確分類的數(shù)據(jù),從這些數(shù)據(jù)中尋找線索。

這個(gè)就是如何在 Zeppelin 中使用 Alink 來做機(jī)器學(xué)習(xí),正如之前所述,模型訓(xùn)練只是機(jī)器學(xué)習(xí)的一小步,機(jī)器學(xué)習(xí)之前你往往需要做數(shù)據(jù)清理,數(shù)據(jù)探索等等,這時(shí)候你就可以利用 Zeppelin 中集成的 Flink 能力來做這些事情,總之你可以在 Zeppelin 這個(gè)平臺(tái)完成整個(gè)端到端的數(shù)據(jù)處理,數(shù)據(jù)分析,機(jī)器學(xué)習(xí)整條鏈路。

如果有碰到任何問題,請(qǐng)加入下面這個(gè)釘釘群討論。

原文鏈接
本文為云棲社區(qū)原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。

總結(jié)

以上是生活随笔為你收集整理的Flink on Zeppelin (4) - 机器学习篇的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。