Apache Spark (ビッグ データを処理するためのオープンソース フレームワーク) のリリース以来、Apache Spark は、複数のコンテナ間で大量のデータを並行して処理するために最も広く使用されているテクノロジの 1 つとなり、効率と速度を誇りにしています。以前に存在した同様のソフトウェアと比較してください。
この素晴らしいテクノロジーを Python で操作することは、Python プログラミング言語を使用して ApacheSpark と対話し、ApacheSpark の驚くべき可能性を活用できる Python API である PySpark を通じて実現できます。
この記事では、PySpark を使用して線形回帰アルゴリズムを使用して機械学習モデルを構築する方法を学び、開始します。
注: この記事に含まれる概念を正しく理解するには、Python、VSCode などの IDE、コマンド プロンプト/ターミナルの使用方法、および機械学習の概念に関する事前知識があることが不可欠です。
この記事を読み進めることで、次のことができるようになります:
- ApacheSpark とは何かを理解します。
- PySpark とそれを機械学習に使用する方法について学びます。
PySpark とは何ですか?
Apache Spark 公式 Web サイトによると、PySpark を使用すると、ApacheSpark (シンプルさ、スピード、スケーラビリティ、汎用性) と Python (豊富なエコシステム、成熟したライブラリ、シンプルさ) の強みを組み合わせて「データ エンジニアリング」に活用できます。 、データ サイエンス、単一ノード マシンでの機械学習、またはクラスター.”
画像ソース
PySpark は ApacheSpark の Python API です。つまり、Python で書かれたコードが Scala で書かれた ApacheSpark テクノロジーと通信できるようにするインターフェイスとして機能します。このようにして、Python エコシステムにすでに精通している専門家は、ApacheSpark テクノロジーをすぐに利用できます。これにより、Python で使用される既存のライブラリの関連性も確保されます。
機械学習に PySpark を使用する方法の詳細ガイド
次の手順では、線形回帰アルゴリズムを使用して機械学習モデルを構築します。
- プロジェクトの依存関係をインストールします: マシンに Python がすでにインストールされていると仮定します。インストールされていない場合は、次の手順に進む前にインストールしてください。ターミナルまたはコマンド プロンプトを開き、以下のコードを入力して PySpark ライブラリをインストールします。
pip install pyspark
これらの追加の Python ライブラリがない場合は、インストールできます。
pip install pyspark
- ファイルを作成し、必要なライブラリをインポートします: VSCode を開き、選択したプロジェクト ディレクトリにプロジェクトのファイル (例: pyspart_model.py) を作成します。ファイルを開き、プロジェクトに必要なライブラリをインポートします。
pip install pandas numpy
- Spark セッションの作成: インポートの下に次のコードを入力して、プロジェクトの Spark セッションを開始します。
from pyspark.sql import SparkSession from pyspark.ml.feature import VectorAssembler from pyspark.ml.classification import LogisticRegression from pyspark.ml.evaluation import BinaryClassificationEvaluator import pandas as pd
- CSV ファイル (作業するデータセット) を読み込みます: プロジェクト ディレクトリ/フォルダーに data.csv という名前のデータセットが既にある場合は、以下のコードを使用して読み込みます。
spark = SparkSession.builder.appName("LogisticRegressionExample").getOrCreate()
- 探索的データ分析: このステップは、作業しているデータセットを理解するのに役立ちます。 null 値を確認し、使用するクレンジング アプローチを決定します。
data = spark.read.csv("data.csv", header=True, inferSchema=True)
オプションで、小さなデータセットを操作している場合は、それを Python データ フレームとディレクトリに変換し、Python を使用して欠損値をチェックできます。
# Display the schema my data.printSchema() # Show the first ten rows data.show(10) # Count null values in each column missing_values = df.select( [count(when(isnull(c), c)).alias(c) for c in df.columns] ) # Show the result missing_values.show()
- データの前処理: このステップには、データセット内の列/特徴を、PySpark の機械学習ライブラリが容易に理解できる、または互換性のある形式に変換することが含まれます。
すべての機能を 1 つのベクトル列に結合するには、VectorAssembler を使用します。
pandas_df = data.toPandas() # Use Pandas to check missing values print(pandas_df.isna().sum())
- データセットを分割: 都合の良い比率でデータセットを分割します。ここでは、70% から 30% を使用しています。70% はトレーニングに、30% はモデルのテストに使用されます。
# Combine feature columns into a single vector column feature_columns = [col for col in data.columns if col != "label"] assembler = VectorAssembler(inputCols=feature_columns, outputCol="features") # Transform the data data = assembler.transform(data) # Select only the 'features' and 'label' columns for training final_data = data.select("features", "label") # Show the transformed data final_data.show(5)
- モデルをトレーニングする: モデルのトレーニングにはロジスティック回帰アルゴリズムを使用しています。
LogisticRegression クラスのインスタンスを作成し、モデルを適合させます。
train_data, test_data = final_data.randomSplit([0.7, 0.3], seed=42)
- トレーニングされたモデルで予測を行う: 前のステップでトレーニングしたモデルを使用して予測を行います
lr = LogisticRegression(featuresCol="features", labelCol="label") # Train the model lr_model = lr.fit(train_data)
- モデル評価: ここでは、予測パフォーマンスまたは正確性のレベルを決定するためにモデルが評価されています。これは、適切な評価指標を使用することで実現されます。
AUC メトリクスを使用してモデルを評価する
predictions = lr_model.transform(test_data) # Show predictions predictions.select("features", "label", "prediction", "probability").show(5)
この記事で使用されるエンドツーエンドのコードを以下に示します。
evaluator = BinaryClassificationEvaluator(rawPredictionCol="rawPrediction", labelCol="label", metricName="areaUnderROC") # Compute the AUC auc = evaluator.evaluate(predictions) print(f"Area Under ROC: {auc}")
次のステップ?
この記事は終わりに達しました。上記の手順に従って、PySpark を使用して機械学習モデルを構築しました。
次のステップに進む前に、データセットがクリーンで null 値がないことを必ず確認してください。最後に、モデルのトレーニングに進む前に、すべての特徴に数値が含まれていることを確認してください。
以上が機械学習に PySpark を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Tomergelistsinpython、あなたはオペレーター、extendmethod、listcomfulting、olitertools.chain、それぞれの特異的advantages:1)operatorissimplebutlessforlargelist;

Python 3では、2つのリストをさまざまな方法で接続できます。1)小さなリストに適したオペレーターを使用しますが、大きなリストには非効率的です。 2)メモリ効率が高い大規模なリストに適した拡張方法を使用しますが、元のリストは変更されます。 3)元のリストを変更せずに、複数のリストをマージするのに適した *オペレーターを使用します。 4)Itertools.chainを使用します。これは、メモリ効率が高い大きなデータセットに適しています。

Join()メソッドを使用することは、Pythonのリストから文字列を接続する最も効率的な方法です。 1)join()メソッドを使用して、効率的で読みやすくなります。 2)サイクルは、大きなリストに演算子を非効率的に使用します。 3)リスト理解とJoin()の組み合わせは、変換が必要なシナリオに適しています。 4)redoce()メソッドは、他のタイプの削減に適していますが、文字列の連結には非効率的です。完全な文は終了します。

pythonexexecutionistheprocessoftransforningpythoncodeintoexecutabletructions.1)interpreterreadSthecode、変換intobytecode、thepythonvirtualmachine(pvm)executes.2)theglobalinterpreeterlock(gil)管理委員会、

Pythonの主な機能には次のものがあります。1。構文は簡潔で理解しやすく、初心者に適しています。 2。動的タイプシステム、開発速度の向上。 3。複数のタスクをサポートするリッチ標準ライブラリ。 4.強力なコミュニティとエコシステム、広範なサポートを提供する。 5。スクリプトと迅速なプロトタイピングに適した解釈。 6.さまざまなプログラミングスタイルに適したマルチパラダイムサポート。

Pythonは解釈された言語ですが、コンパイルプロセスも含まれています。 1)Pythonコードは最初にBytecodeにコンパイルされます。 2)ByteCodeは、Python Virtual Machineによって解釈および実行されます。 3)このハイブリッドメカニズムにより、Pythonは柔軟で効率的になりますが、完全にコンパイルされた言語ほど高速ではありません。

useaforloopwhenteratingoverasequenceor foraspificnumberoftimes; useawhileloopwhentinuninguntinuntilaConditionismet.forloopsareidealforknownownownownownownoptinuptinuptinuptinuptinutionsituations whileoopsuitsituations withinterminedationations。

pythonloopscanleadtoErrorslikeinfiniteloops、ModifiningListsDuringiteration、Off-Oneerrors、Zero-dexingissues、およびNestededLoopinefficiencies.toavoidhese:1)use'i


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

メモ帳++7.3.1
使いやすく無料のコードエディター
