Spark で Azure Machine Learning Notebook を使用する方法
大事な
AKS 上の Azure HDInsight は、2025 年 1 月 31 日に廃止されました。 このお知らせ を読んで、について詳しく知ることができます。
ワークロードの突然の終了を回避するには、ワークロードを Microsoft Fabric または同等の Azure 製品 に移行する必要があります。
大事な
この機能は現在プレビュー段階です。 Microsoft Azure プレビューの 追加使用条件 には、ベータ版、プレビュー版、または一般公開されていない Azure 機能に適用される、より多くの法的条件が含まれています。 この特定のプレビューの詳細については、AKS プレビュー情報 Azure HDInsightを参照してください。 ご質問や機能の提案については、詳細を記載した要求をAskHDInsight に送信してください。また、Azure HDInsight Communityをフォローして最新情報をお受け取りください。
機械学習は、コンピューターが過去のデータから自動的に学習できるようにする、成長を続けるテクノロジです。 機械学習では、さまざまなアルゴリズムを使用して数学モデルを構築し、予測に履歴データまたは情報を使用します。 いくつかのパラメーターまで定義されたモデルがあり、学習とは、トレーニング データまたはエクスペリエンスを使用してモデルのパラメーターを最適化するためのコンピューター プログラムの実行です。 モデルは、将来予測を行う予測、またはデータから知識を得るための説明的な予測である可能性があります。
次のチュートリアル ノートブックは、表形式データに対する機械学習モデルのトレーニングの例を示しています。 このノートブックをインポートし、自分で実行できます。
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'}))