0Pricing
Data Science Academy · レッスン

日付とテキストから特徴量を作る

生のフィールドから情報を取り出す

「日付とテキストから特徴量を作る」はCoddyKit上の無料Data Science Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはData Science Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Data Science Academyコースには全4レッスンが含まれています。

生のフィールドには信号が隠れている

タイムスタンプや自由記述のメモには、モデルがそのままでは読み取れない豊富な手がかりがあります。Feature engineeringによって、その信号を利用可能な列に取り出します。🔍

まず日付を解析する

日付から情報を取り出す前に、to_datetimeで文字列を変換します。実際のdatetimeになって初めて、必要な便利な要素を抽出できます。

df['ts'] = pd.to_datetime(df['ts'])

dtアクセサー

dtアクセサーを使うと、datetime列から日付の各要素を取り出せます。1行で年、月、日などを取得できます。

df['year'] = df['ts'].dt.year
df['month'] = df['ts'].dt.month

曜日

dayofweekを取り出すと、週ごとのリズムを捉えられます。月曜日が0、日曜日が6です。曜日によって行動が大きく変わることもあります。

df['weekday'] = df['ts'].dt.dayofweek

週末フラグ

曜日を単純なbooleanに変換し、「週末かどうか」を表します。このような yes/no のフラグは、モデルが学習しやすい形式です。

df['is_weekend'] = df['ts'].dt.dayofweek >= 5

周期的な時間

23時は0時のすぐ隣ですが、数値上は大きく離れています。正弦と余弦を使ったCyclical encodingによって、この循環を正しく表現できます。

テキスト:長さとカウント

テキストでは、まず単純な特徴量から始めます。レビューの文字lengthや単語数は、驚くほど強力な特徴量になることがあります。

df['len'] = df['review'].str.len()
df['words'] = df['review'].str.split().str.len()

キーワードを含むかどうか

str.containsを使って、テキストに重要な語が含まれるかをフラグにします。refundのような単語の列から、明確な意図を捉えられます。

df['has_refund'] = df['review'].str.contains('refund')

Bag of Words

単語そのものを使うには、単語を数えます。bag-of-wordsでは、テキストを単語ごとの列に変換し、それぞれの出現回数を格納します。

from sklearn.feature_extraction.text import CountVectorizer
X = CountVectorizer().fit_transform(df['review'])

TF-IDFで単語に重みを付ける

単純なカウントでは、よくある単語を過大評価します。TF-IDFは、1行内では頻繁に現れる一方で全体ではまれな単語を高く評価し、特徴的な単語を目立たせます。

from sklearn.feature_extraction.text import TfidfVectorizer
X = TfidfVectorizer().fit_transform(df['review'])

漏洩する特徴量を避ける

予測時に利用できない情報から特徴量を作ってはいけません。leakyな列はテスト時のスコアを不自然に高め、その後、実世界では機能しなくなります。

確認問題

datetime列があり、曜日番号を取得したいとします。何を使いますか。

まとめ:日付とテキストの特徴量

生のフィールドから信号を取り出しました。日付を解析してからdtで各要素やフラグを取得し、テキストを長さ、キーワードフラグ、単語数に変換します。🎉

よくある質問

「日付とテキストから特徴量を作る」レッスンは無料ですか?

はい。「日付とテキストから特徴量を作る」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Data Science Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Data Science Academyコースには全4レッスンが含まれています。

「日付とテキストから特徴量を作る」で何を学びますか?

生のフィールドから情報を取り出す ブラウザで直接実行するハンズオンコードでData Science Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Data Science Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのData Science Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。

「日付とテキストから特徴量を作る」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このData Science Academyレッスンでコードを書いて実行できますか?

はい。すべてのData Science Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 数値をカテゴリに分ける
  2. カテゴリ列をエンコードする
  3. 数値をスケーリングして正規化する
  4. 日付とテキストから特徴量を作る
← Data Science Academyに戻る