共用方式為


如何在 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 檔上傳至您的儲存體

  1. 在入口網站 JSON 檢視中尋找您的儲存體和容器名稱

    顯示 JSON 檢視的螢幕擷取畫面。

  2. 瀏覽至您的主要 HDI 儲存體>容器>基底資料夾> 上傳 CSV 檔

    顯示如何導覽至儲存體和容器的螢幕擷取畫面。

    顯示如何上傳 CSV 檔案的螢幕擷取畫面。

  3. 登入您的叢集並開啟 Jupyter Notebook

    顯示 Jupyter Notebook 的螢幕擷取畫面。

  4. 匯入 Spark MLlib 程式庫以建立管線

    import pyspark
    from pyspark.ml import Pipeline, PipelineModel
    from pyspark.ml.classification import LogisticRegression
    from pyspark.ml.feature import VectorAssembler, StringIndexer, IndexToString
    

    顯示如何啟動 Spark 應用程式的螢幕擷取畫面。

  5. 將 CSV 檔讀入 Spark 資料框架

    df = spark.read.("abfss:///iris_csv.csv",inferSchema=True,header=True)

  6. 分割資料以進行定型和測試

    iris_train, iris_test = df.randomSplit([0.7, 0.3], seed=123)

  7. 建立管線並定型模型

    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)
    

    顯示如何執行測試模型的螢幕擷取畫面。

  8. 評估模型精確度

    import pyspark.ml.evaluation as ev
    evaluator = ev.MulticlassClassificationEvaluator(labelCol='classIndex')
    
    print(evaluator.evaluate(test_model,{evaluator.metricName: 'accuracy'}))
    

    顯示如何列印輸出的螢幕擷取畫面。