始める無料で始める

スパムと非スパムデータの読み込み

Logistic Regression は、カテゴリカルな応答を予測するための一般的な手法です。最もよくある応用例のひとつが、メッセージやメールのスパム判定です。この3部構成の演習では、Spark MLlib を使ってロジスティック回帰によるメールのスパム分類器を作成します。以下はスパム分類器を作るための簡単な手順です。

  • メールを表す文字列の RDD を作成します。
  • MLlib の特徴量抽出アルゴリズムを実行して、テキストをベクトルの RDD に変換します。
  • そのベクトルの RDD に分類アルゴリズムを適用して、新しいデータ点を分類するモデルオブジェクトを得ます。
  • MLlib の評価関数のいずれかを使って、テストデータセット上でモデルを評価します。

演習の最初のパートでは、'spam' と 'ham'(非スパム)のファイルを RDD に読み込み、メールを単語に分割し、各 RDD の最初の要素を確認します。

作業スペースには SparkContext の sc が用意されています。さらに、'spam' ファイルへのパスを表す file_path_spam 変数と、'non-spam' ファイルへのパスを表す file_path_non_spam 変数もすでに利用できます。

この演習はコースの一部です

PySparkで学ぶBig Data入門

コースを見る

演習の手順

  • 'spam' 用と 'non-spam (ham)' 用に、それぞれ1つずつ RDD を作成します。
  • 'spam' と 'non-spam' の各 RDD で、各メールを単語に分割します。
  • 分割後の 'spam' と 'non-spam' の各 RDD で、最初の要素を表示します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Load the datasets into RDDs
spam_rdd = sc.____(file_path_spam)
non_spam_rdd = sc.____(file_path_non_spam)

# Split the email messages into words
spam_words = spam_rdd.____(lambda email: email.split(' '))
non_spam_words = non_spam_rdd.____(lambda email: ____.____(' '))

# Print the first element in the split RDD
print("The first element in spam_words is", spam_words.____())
print("The first element in non_spam_words is", ____.____())
コードを編集して実行