Scalaを使用したデータ分析
データ分析に適切なツールを選択することは非常に重要です。 国際的なデータサイエンスコンテストが開催されるKaggleフォーラムでは、どちらのツールが優れているかをよく尋ねられます。 RとPythonがリストの一番上にあります。 この記事では、Scalaに基づくデータ分析テクノロジーの代替スタックについて説明します。
By ローマン・ジコフ、創設者/データサイエンティスト@ TopDataLab
データ分析に適切なツールを選択することは非常に重要です。 に Kaggle.com 国際的なデータサイエンスコンテストが開催されるフォーラムでは、どちらのツールが優れているかをよく尋ねられます。 RとPythonがリストの一番上にあります。 この記事では、Scalaプログラミング言語とに基づくデータ分析テクノロジーの代替スタックについて説明します。 スパーク 分散コンピューティングプラットフォーム。
どうやって思いついたのですか? Retail Rocketでは、非常に大きなデータセットに対して多くの機械学習を行っています。 以前は、IPython + Pyhs2(Pythonのハイブドライバー)+ Pandas + Sklearnを使用してプロトタイプを開発していました。 2014年の夏の終わりに、同じサーバーパークでパフォーマンスが3〜4倍向上することが実験で示されたため、Sparkに切り替えるという基本的な決定を下しました。
もう4つの利点は、本番サーバーで実行されるモデリングとコードにXNUMXつのプログラミング言語を使用できることです。 以前はHive、Pig、Java、PythonのXNUMXつの言語を同時に使用していたため、これは私たちにとって大きなメリットでした。 これは、エンジニアの小さなチームにとっては問題です。
Sparkは、APIを介したPython / Scala / Javaの操作を適切にサポートします。 Sparkが書かれている言語であるため、Scalaを選択することにしました。これは、ソースコードを分析し、必要に応じてバグを修正できることを意味します。 これは、Hadoopが実行されるJVMでもあります。
当時、チームの誰もScalaを知らなかったので、選択は簡単ではなかったと言わなければなりません。
言語でうまくコミュニケーションをとることを学ぶためには、その言語に没頭し、それを可能な限り使用する必要があることはよく知られている事実です。 そのため、モデリングと高速データ分析のためにScalaを優先して、Pythonスタックを放棄しました。
最初のステップは、IPythonノートブックの代替品を見つけることでした。 オプションは次のとおりです。
これまでのところ、選択はシンプルであるためISparkでした。これは、Scala / Spark用のIPythonです。 HighChartsとRグラフィックスを追加するのは比較的簡単です。 そして、それをYarnクラスターに接続することに問題はありませんでした。
仕事
質問に答えてみましょう:オンラインストアの平均購入額(AOV)は、決済、ブラウザーの種類(モバイル/デスクトップ)、オペレーティングシステム、ブラウザーのバージョンなどの静的な顧客パラメーターに依存しますか? あなたはこれを行うことができます 相互情報.
推奨アルゴリズムと分析にはエントロピーを多用します。古典的なシャノンの公式、カルバック・ライブラー発散、相互情報量です。 このトピックに関する論文も提出しました。 マーフィーの有名な機械学習の教科書には、これらの対策について説明した、小さいながらも別のセクションがあります。
実際の小売ロケットデータで分析してみましょう。 事前に、サンプルをクラスターからコンピューターにcsvファイルとしてコピーしました。
且つ
ここでは、ローカルモードで実行されているISparkとSparkを使用します。これは、すべての計算がローカルで実行され、プロセッサコア間で分散されることを意味します。 すべてはコードへのコメントで説明されています。 最も重要なことは、出力でRDD(Sparkデータ構造)を取得することです。これは、コードで定義されているRow型のケースクラスのコレクションです。 これにより、「。」を介してフィールドを参照できます(例:_。categoryId)。
過去30日間の人気記事 | |||||
---|---|---|---|---|---|
|
|
出典:https://www.kdnuggets.com/2021/09/data-analysis-scala.html
- "
- &
- 100
- 利点
- アルゴリズム
- すべて
- Amazon
- 間で
- 分析
- アパッチ
- API
- アプリ
- 記事
- ボルト
- ブラウザ
- バグ
- ビルド
- 束
- 変化する
- チャート
- コード
- 注釈
- コンクール
- コンピューティング
- データ
- データ分析
- データサイエンス
- データサイエンティスト
- 取引
- 深い学習
- 開発する
- DID
- 分散コンピューティング
- ドライバー
- エンジニアリング
- エンジニア
- 等
- Excel
- 体験
- 実験
- 探査
- 顔
- 家族
- スピーディー
- 特徴
- フィールズ
- 名
- 修正する
- AIとMoku
- フレームワーク
- GitHubの
- Hadoopの
- こちら
- ハイブ
- 認定条件
- How To
- HTTPS
- 巨大な
- 情報
- 相互作用的
- 世界全体
- IT
- Java
- 言語
- ESL, ビジネスESL <br> 中国語/フランス語、その他
- 大
- LEARN
- 学習
- 図書館
- LINE
- リスト
- ローカル
- 局部的に
- 長い
- 機械学習
- マシン
- 数学
- メトリック
- Microsoft
- モデリング
- 一番人気
- ノートPC
- オンライン
- オンラインストア
- 開いた
- オープンソース
- オペレーティング
- オペレーティングシステム
- オプション
- 注文
- その他
- 紙素材
- のワークプ
- パフォーマンス
- 視点
- 物理学
- プラットフォーム
- 人気
- ポートフォリオ
- 生産
- プログラミング
- プロジェクト
- 購入
- Python
- 小売
- ラン
- ランニング
- スカラ
- 科学
- 科学者たち
- セッションに
- 決済
- 簡単な拡張で
- サイズ
- スキル
- 小さい
- So
- ソフトウェア
- スペース
- 店舗
- ストーリー
- 提出された
- 夏
- サポート
- サポート
- スイッチ
- テクノロジー
- テスト
- グラフ
- 時間
- top
- ユニティ
- URI
- us
- 値
- ウェブ
- Wikipedia
- ウィンドウズ
- 仕事
- X
- 年
- ゼロ