記事著者の電子メール: [email protected] 住所: 広東省恵州市
▲ この章のプログラム
⚪ Spark の MLlib 概念を理解します。
⚪ Master Spark の MLlib 基本データ モデル。
⚪ Spark の MLlib 統計の基本をマスターします。
1. Spark MLlib の概要
1。概要
MLlib は、Apache Spark の反復可能な機械学習ライブラリです。
2. 使いやすい
Java、Scala、Python、R 言語で利用できます。
MLlib は Spark の API と連携し、Python の NumPy (Spark 0.9 以降) および R ライブラリ (Spark 1.5 以降) と相互運用します。HDFS、HBase、ローカル ファイルなどの任意の Hadoop データ ソースを使用できるため、Hadoop ワークフローに簡単にプラグインできます。
場合:
// Python 経由で MLib を呼び出す
データ =spark.read.format("libsvm").load("hdfs://...")
モデル = KMeans(k=10).fit(data)
3. 効率的な実行
MapReduce よりも 100 倍高速な高品質のアルゴリズム。
Spark は反復計算に優れているため、MLlib を高速に実行できます。同時に、アルゴリズムのパフォーマンスにも重点を置いています。MLlib には、反復を利用する高品質のアルゴリズムが含まれており、MapReduce で使用されるワンパス近似よりも優れた結果を生成できます。Hadoop と Spark のデータ モデルを次の図に示します。
4. 導入が簡単
Spark は、Hadoop、Apache Mesos、Kubernetes、スタンドアロン、またはクラウド上で実行され、さまざまなデータ ソースをターゲットとします。
Spark は、スタンドアロン クラスター モード、EC2、Hadoop YARN、Mesos、または Kubernetes を使用して実行できます。HDFS、Apache Cassandra、Apache HBase、Apache Hive、その他数百ものデータ ソースのデータにアクセスします。
5. アルゴリズム
MLlib には、多くのアルゴリズムとユーティリティが含まれています。
ML アルゴリズムには次のものが含まれます。
1. 分類: ロジスティック回帰、単純ベイズなど。
2. 回帰: 一般化線形回帰、生存回帰など。
3. デシジョン ツリー、ランダム フォレスト、および勾配ブースト ツリー。
4. 推奨事項: 交互最小二乗法 (ALS)。
5. クラスタリング: K 平均法、混合ガウス (GMM) など。
6. トピックモデリング: 潜在ディリクレ配分 (LDA)。
7. 頻繁なアイテムセット、相関ルール、および逐次パターンマイニング。
ML ワークフロー ツールには次のものが含まれます。
1. 特徴変換: 正規化、正規化、ハッシュ化など。
2. ML パイプラインの構築。
3. モデルの評価とハイパーパラメーターの調整。
4. ML 永続性: モデルとパイプラインの保存と読み込み。
その他のツールには次のものがあります。
分散線形代数: SVD、PCA など。
統計: 要約統計、仮説検定など。
6. まとめ
MLlib は、Spark 上に構築されたビッグデータ処理に特化した同時実行高速機械学習ライブラリであり、より高度な反復計算とメモリストレージ解析計算を使用することで、通常のデータよりもデータの計算と処理速度が大幅に向上するのが特徴です。 .処理エンジン。
MLlib 機械学習ライブラリは現在も更新されており、Apache 研究者はさらに多くの機械学習アルゴリズムを追加しています。現在、MLlib には、統計、分類、回帰、クラスタリング、次元削減などの一般的な学習アルゴリズムとツール クラスがあります。
MLlibはScala言語で書かれており、JVM上で動作する関数型プログラミング言語であり、移植性が高く、「一度書けばどこでも実行できる」ことが最大の特徴です。RDD データの統一された入力形式を利用して、ユーザーは異なる IDE 上でデータ処理プログラムを作成でき、ローカライゼーション テストに合格した後、動作パラメータをわずかに変更してクラスター上で直接実行できます。結果の取得はより視覚的かつ直感的になり、実行中のシステムの基礎となる層の違いによる結果の違いや変更はありません。
2. MLlibの基本データモデル
1。概要
RDDはMLlib専用のデータフォーマットで、Scalaの関数型プログラミングの考え方を参考にし、統計解析の概念を大胆に導入し、格納されたデータをベクトルや行列の形に変換して格納・計算することで、データを定量的に表現することができます。結果を照合して分析します。
複数のデータ型
MLlib は本質的に、最も基本的な Spark データ セット RDD からクラスターにデプロイされたベクトルや行列に至るまで、さまざまなデータ形式をサポートします。同様に、MLlib は、ローカル マシンにデプロイされたローカライズされた形式もサポートします。
次の表に、MLlib でサポートされるデータ型を示します。
型名 |
意味 |
ローカルベクトル |
ローカルベクトルセット。主に、操作可能なデータ コレクションのセットを Spark に提供します。 |
ラベル付きポイント |
ベクトルのラベル。ユーザーがさまざまなデータ収集を分類できるようにする |
ローカル行列 |
ローカルマトリックス。データを結合し、ローカル コンピューターにマトリックス形式で保存します |
分散マトリックス |
分散マトリックス。行列のコレクションを行列として分散コンピューターに保存する |
上記は MLlib がサポートするデータ型であり、分散行列は機能やアプリケーションのシナリオに応じて 4 つの異なるタイプに分類されます。
2. ローカルベクトル
MLlib で使用されるローカライズされたストレージ タイプはベクトルであり、ここでのベクトルは主に、スパース データ セット (spare) とデンス データ セット (dense)の 2 つのタイプで構成されます。たとえば、ベクトル データ (9,5,2,7) は、集中データ形式に従って (9,5,2,7) として格納でき、データ セットは全体として 1 つのセットとして格納されます。スパース データの場合、ベクトルのサイズに応じて (4, Array(0,1,2,3), Array(9,5,2,7)) として格納できます。
ケースその 1:
org.apache.spark.{SparkConf,SparkContext} をインポートします
def main(args:Array[String]):Unit={
//-- 密なベクトルを作成する
//--dense は、Array に似た MLlib 専用のコレクション形式として理解できます。
val vd=Vectors.dense(2,0,6)//
プリントイン(VD)
//①参考:サイズ。スペアの方法は、指定されたデータ配列データ (9、5、2、7) を指定されたサイズの部分に分解して処理することです。この場合は 7 つの部分です。
//③パラメータ:入力データ。この場合は Array(9,5,2,7) です。
//②パラメータ: 入力データに対応する添字は増加する必要があり、最大値は size 以下でなければなりません
val vs=Vectors.sparse(7,Array(0,1,3,6),Array(9,5,2,7))
println(vs(6))
}
}