身為 JavaScript 開發人員,深入研究機器學習並不像看起來那麼令人畏懼。雖然在技術上可以使用 Node.js 套件處理所有事情,但 Python ML 生態系統太豐富且完善,不容忽視。另外,Python 的使用起來非常方便。因此,使用 Python 來處理後端的繁重工作是有意義的。準備好模型後,您可以將其匯出為前端友好的格式並將其加載到客戶端上以運行預測。
在這篇文章中,我們將建立一個模型,根據 Twitter 粉絲數量來預測藝術家的受歡迎程度。
第一步是取得資料集。對於此項目,我們將使用如下所示的 arts.csv 檔案:
twitter_followers,popularity,handle 111024636,94,justinbieber 107920365,91,rihanna 106599902,89,katyperry 95307659,97,taylorswift13 66325495,87,selenagomez 66325135,71,selenagomez 60943147,83,jtimberlake 54815915,82,britneyspears 53569307,85,shakira
正如您所看到的,這裡有兩個關鍵值:twitter_followers 和受歡迎度。這很好地為我們建立了序列模型,其中 x 將是 twitter_followers,y 將是流行度。
序列模型是建構模型最簡單的選項之一。雖然選擇最終取決於特定的用例,但我現在保持簡單並堅持使用這種方法。
當您建立模型時,您需要解決一些基本任務:
下面的程式碼讓您對這些任務有一個很好的概述,儘管它不是完整的圖片。你可以在Github上查看完整程式碼。
def get_model(x, y): x_normalized = layers.Normalization( axis=None, ) x_normalized.adapt(np.array(x)) model = tensorflow.keras.Sequential([x_normalized, layers.Dense(units=1)]) model.compile( optimizer=tensorflow.keras.optimizers.Adam(learning_rate=0.1), loss="mean_squared_error", ) model.fit( x, y, epochs=2, verbose=0, validation_split=0.2, ) return model def main: train_features, test_features, train_labels, test_labels = split_data(dataset) model = get_model( train_features["twitter_followers"], train_labels, ) test_loss = model.evaluate( test_features["twitter_followers"], test_labels, verbose=2 ) model.export("./saved_model")
如您所見,Python 程式碼非常簡單。有一個主要函數處理資料的分割、取得模型、評估它,最後保存它。
簡而言之,這些是創建模型的基本步驟。但讓我們面對現實:建立一個真正有效的模型既是一門藝術,也是一門科學。我的目標只是展示 Python 入門是多麼容易。然而,要創建一個性能良好的模型,需要做很多工作,例如擁有可靠的資料集、清理和標準化資料、選擇正確的模型和設置,以及擁有訓練它的計算能力。所有這些任務都需要大量的時間和精力投入!
現在我們已經訓練並保存了模型,是時候將其引入前端了。在這一步驟中,我們將以網路友好的格式載入模型,以便我們可以直接在瀏覽器中執行預測。無論您使用 TensorFlow.js 還是其他程式庫,將機器學習整合到您的 Web 應用程式中都會開啟一個充滿可能性的世界。讓我們深入探討如何做到這一點!
TensorFlow 提供了一個名為 tensorflowjs_converter 的 npm 包,可協助將已儲存的模型轉換為 JSON 和二進位檔案。
tensorflowjs_converter --input_format=tf_saved_model model/saved_model out/public
ls -la out/public group1-shard1of1.bin model.json
此設定可以輕鬆存取 Web 應用程式所需的檔案。
完整程式碼可以在Github上查看。
const model = await tensorflow.loadGraphModel("model.json"); const getPopularity = (followers) => { const followers = 1_000; const normalized = followers; const x = tensorflow.tensor(normalized).reshape([-1, 1]); const result = model.predict(x); const values = result.arraySync(); const y = values[0][0].toFixed(2) * 100; const popularity = y; return popularity; };
如前所述,該模型旨在根據 Twitter 追蹤者數量「預測受歡迎程度」。雖然它看起來像是一個簡單的範例,但它有效地演示瞭如何在後端生成模型並在前端使用它。
稍微看一下getPopularity是如何處理輸入的,但關鍵一行是model.predict(x),它使用模型根據輸入x預測一個值(y)。
前往演示頁面並嘗試一些 Twitter 手把。這是一種有趣的方式來了解模型如何根據追蹤者數量預測受歡迎程度。
TensorFlow 是一個很棒的函式庫,為後端和前端開發提供工具。任何 JavaScript 開發人員都可以深入使用 Python 或類似語言建立模型,然後輕鬆將模型匯入前端以運行預測。
雖然機器學習是一個廣泛的領域,需要大量知識,但 TensorFlow 等工具有助於彌合軟體和機器學習開發人員之間的差距。對於那些希望將 ML 融入他們的專案中的人來說,這讓旅程變得更加順利!
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3