分享方式:


如何在Spark上使用 Azure 機器學習 Notebook

重要

此功能目前為預覽功能。 適用於 Microsoft Azure 預覽版的補充使用規定包含適用於 Beta 版、預覽版或尚未發行至正式運作之 Azure 功能的更合法條款。 如需此特定預覽的相關信息,請參閱 AKS 預覽資訊的 Azure HDInsight。 如需問題或功能建議,請在 AskHDInsight提交要求,並提供詳細數據,並遵循我們在 Azure HDInsight 社群取得更多更新。

機器學習是一項日益成長的技術,可讓計算機從過去的數據自動學習。 機器學習會使用各種演算法來建置數學模型,並讓預測使用歷程記錄數據或資訊。 我們定義了一些參數的模型,而學習是執行計算機程式,以使用定型數據或體驗將模型的參數優化。 模型可能是預測性,以在未來進行預測,或描述性地從數據中取得知識。

下列教學課程筆記本示範在表格式數據上定型機器學習模型的範例。 您可以匯入此筆記本並自行執行。

將 CSV 上傳至您的記憶體

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

    顯示 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'}))
    

    顯示如何列印輸出的螢幕快照。