如何在 Spark 上使用 Azure Machine Learning Notebook
注意
AKS 上的 Azure HDInsight 將於 2025 年 1 月 31 日退場。 請於 2025 年 1 月 31 日之前,將工作負載移轉至 Microsoft Fabric 或對等的 Azure 產品,以免工作負載突然終止。 訂用帳戶中剩餘的叢集將會停止,並會從主機移除。
在淘汰日期之前,只有基本支援可用。
重要
此功能目前為預覽功能。 Microsoft Azure 預覽版增補使用規定包含適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未正式發行的版本) 的更多法律條款。 若需此特定預覽版的相關資訊,請參閱 Azure HDInsight on AKS 預覽版資訊。 如有問題或功能建議,請在 AskHDInsight 上提交要求並附上詳細資料,並且在 Azure HDInsight 社群上追蹤我們以獲得更多更新資訊。
機器學習 (Machine Learning) 是一項不斷發展的技術,它可讓電腦能夠從過去的資料中自動學習。 機器學習會使用各種演算法來建置數學模型,並讓預測使用歷程記錄資料或資訊。 我們有一個定義了一些參數的模型,而學習是執行電腦程式以使用定型資料或經驗來最佳化模型的參數。 該模型可以是預測性的,以對未來進行預測,也可以是描述性的,以從資料中獲取知識。
以下教學用的 Notebook 顯示了在表格式資料上定型機器學習模型的範例。 您可以匯入此 Notebook 並自行執行。
將 CSV 檔上傳至您的儲存體
在入口網站 JSON 檢視中尋找您的儲存體和容器名稱
瀏覽至您的主要 HDI 儲存體>容器>基底資料夾> 上傳 CSV 檔
登入您的叢集並開啟 Jupyter Notebook
匯入 Spark MLlib 程式庫以建立管線
import pyspark from pyspark.ml import Pipeline, PipelineModel from pyspark.ml.classification import LogisticRegression from pyspark.ml.feature import VectorAssembler, StringIndexer, IndexToString
將 CSV 檔讀入 Spark 資料框架
df = spark.read.("abfss:///iris_csv.csv",inferSchema=True,header=True)
分割資料以進行定型和測試
iris_train, iris_test = df.randomSplit([0.7, 0.3], seed=123)
建立管線並定型模型
assembler = VectorAssembler(inputCols=['sepallength', 'sepalwidth', 'petallength', 'petalwidth'],outputCol="features",handleInvalid="skip") indexer = StringIndexer(inputCol="class", outputCol="classIndex", handleInvalid="skip") classifier = LogisticRegression(featuresCol="features", labelCol="classIndex", maxIter=10, regParam=0.01) pipeline = Pipeline(stages=[assembler,indexer,classifier]) model = pipeline.fit(iris_train) # Create a test `dataframe` with predictions from the trained model test_model = model.transform(iris_test) # Taking an output from the test dataframe with predictions test_model.take(1)
評估模型精確度
import pyspark.ml.evaluation as ev evaluator = ev.MulticlassClassificationEvaluator(labelCol='classIndex') print(evaluator.evaluate(test_model,{evaluator.metricName: 'accuracy'}))