日付とテキストから特徴量を作る
生のフィールドから情報を取り出す
「日付とテキストから特徴量を作る」は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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 数値をカテゴリに分ける
- カテゴリ列をエンコードする
- 数値をスケーリングして正規化する
- 日付とテキストから特徴量を作る