問題タブ [apache-spark-ml]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache-spark - Pyspark と PCA: この PCA の固有ベクトルを抽出するにはどうすればよいですか? 彼らが説明している分散の量をどのように計算できますか?
次のように、pyspark (ライブラリを使用) を使用してSpark DataFrame
withモデルの次元を削減しています。PCA
spark
ml
ここdata
で、 はラベルが付けられたSpark DataFrame
1 つの列で、3 次元の です。features
DenseVector
フィッティング後、データを変換します。
この PCA の固有ベクトルを抽出するにはどうすればよいですか? 彼らが説明している分散の量をどのように計算できますか?
apache-spark - Spark が netlib から ARPACK または BLAS をロードしない
データの SVD を計算しています。しかしspark-submit
、ログ ファイルの状態を使用して Spark アプリケーションを送信するたびに、次のようになります。
with フラグを使用して Spark をビルドし-Pnetlib-lgpl
、jar ファイルを作成するときに sbt ファイルに netlib 依存関係も含めます。
GCC と Gfortran のバージョンはgcc version 4.8.0 (GCC)
. BLAS、LAPACK、ATLAS もインストールし、netlib サイトの指示に従いました: https://github.com/fommil/netlib-java
としてインポートすると、spark-shell
インポートされimport com.github.fommil.netlib._
なかったと表示されません。
私はしばらくこの問題をデバッグしようとしましたが、アイデアがありません。誰かが親切にこれを理解するのを手伝ってくれます。
python - インデックスと文字列の対応を維持するスパーク文字列インデクサー
Spark の StringIndexer は非常に便利ですが、生成されたインデックス値と元の文字列の間の対応を取得する必要があるのはよくあることであり、これを実現するための組み込みの方法が必要なようです。Spark のドキュメントにある次の簡単な例を使用して説明します。
この単純化されたケースでは、次のことがわかります。
すべてうまくいきますが、多くのユースケースで、元の文字列とインデックス ラベルの間のマッピングを知りたいと思っています。私が考えることができる最も簡単な方法は、次のようなものです。
必要に応じて、結果を辞書などに保存できます。
私の質問は次のとおりです。これは非常に一般的なタスクであり、文字列インデクサーが何らかの方法でこのマッピングを保存していると推測していますが (もちろん間違っている可能性もあります)、上記のタスクをより簡単に達成する方法はありますか?
私の解決策は多かれ少なかれ簡単ですが、大規模なデータ構造の場合、(おそらく) 回避できる余分な計算が必要になります。アイデア?
scala - Spark ML NaiveBayes がトレーニング データとは異なるラベルを出力するのはなぜですか?
Apache Spark ML (バージョン 1.5.1)のNaiveBayes分類子を使用して、いくつかのテキスト カテゴリを予測します。ただし、分類器は、トレーニング セットのラベルとは異なるラベルを出力します。私はそれを間違っていますか?
たとえば、Zeppelin ノートブックに貼り付けることができる小さな例を次に示します。
小さなプログラムからの出力:
予測されたラベルのセット {0.0, 1.0, 2.0} は、トレーニング セットのラベル {100.0, 200.0, 300.0} とは素です。
質問: これらの予測されたラベルを元のトレーニング セットのラベルにマッピングするにはどうすればよいですか?
おまけの質問: 他のタイプはラベルと同じように機能するのに、なぜトレーニング セットのラベルは double でなければならないのですか? 不要に思えます。
python - pyspark で ALS の入力データを変換する
推奨用の入力データは次のようになります。
の形式に従っています(user_id, item_id, score)
。
私の理解が正しければ、spark の ALS はトレーニング前にuser_id
,item_id
を整数に変換する必要がありますか? もしそうなら、私が今考えることができる唯一の解決策は、辞書を使用して、すべてを整数にマップするuser_id
ことitem_id
です
しかし、それを行うための他のエレガントな方法があるかどうか疑問に思っていましたか? ありがとう!
scala - Spark は、スケーリングされた係数を持つ (LogisticRegression) モデルを返します
LogisticRegression
合成的に生成されたデータでパフォーマンスをテストしています。入力として持っている重みは
切片がなく、3 つの特徴があります。1000
それぞれのランダムな正規分布を想定して合成的に生成されたデータポイントでトレーニングした後、LogisticRegression
取得した Spark モデルの重みは次のとおりです。
各重みが元の値に対して「3」に近い係数でスケーリングされていることがわかります。この背後にある理由を推測することはできません。コードは次のように単純です。
誰かがここで怪しいものに光を当てることができれば幸いです.
敬具、ニキル
scala - Spark、Scala、DataFrame: 特徴ベクトルの作成
次DataFrame
のようなものがあります:
userID
個別のカテゴリの数は 10 です。それぞれの特徴ベクトルを作成し、不足しているカテゴリをゼロで埋めたいと思います。
したがって、出力は次のようになります。
これは単なる例です。実際には、約 200,000 の一意のユーザー ID と 300 の一意のカテゴリがあります。
機能を作成する最も効率的な方法は何DataFrame
ですか?