1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

kaggle初心者に送るAdvent Calendar 2024

Day 3

特徴量エンジニアリング 二日目

Last updated at Posted at 2024-12-02

この記事は

3日目の記事です。

についての解説を載せて行きます。

このtutorialでは特徴量を自分で計算して作り出し、元の表に横からつけること(特徴量エンジニアリング)を行なっています。

tutorialの初めに

np.pi * ((0.5 * autos.bore) ** 2) * autos.stroke * autos.num_of_cylinders

という計算式が出てきます。どこからきたのか途方に暮れるかと思いますがこれは調べてみると車のエンジン排気量を計算するコードです。突然出てきたように感じられますが、おそらく自動車業界の方には馴染みがある数式なのでしょう。このようにある業界について特有の知識があるとkaggleで優位に戦えます。ドメイン知識というやつですね。今回我々は自動車エンジン業界に詳しくはなく、この先も同様と考えられますので、とりあえずこの数式を受け入れることで次に進めます。

また、このtutorialからsum(axis=1)というようにaxisを多用しています。この先も出て行きますので、ここで押さえておきましょう。pandas tutorialでも出てきますのでそこで確認するのも良いですね。

日本語の二次元配列は「行列」と言われますが、axisも同様にaxis=0 は行方向を指し、axis=1 は列方向を指しますので行→列となることを理解すると覚えやすいかと思います。

roadway_features = ["Amenity", "Bump", "Crossing", "GiveWay",
    "Junction", "NoExit", "Railway", "Roundabout", "Station", "Stop",
    "TrafficCalming", "TrafficSignal"]
accidents["RoadwayFeatures"] = accidents[roadway_features].sum(axis=1)

accidents[roadway_features + ["RoadwayFeatures"]].head(10)

はデータの roadway_features ラベルのデータを列方向に合計し、RoadwayFeatures という新しい列を作成する関数になります。

そのほか、
文字列を空白で区切って複数のラベルに変換(strとsplitはpythonの基本文法で学んでおきましょう)
文字列を結合 (+で結合なのはわかりますね)
が出てきます。

Group transformsの解説について
グループ変換は、カテゴリ別にグループ化された複数の行の情報を集計します。
groupby・・ときいて皆さんはDataScienceを連想しますか?
一般に広く使用されるExcelでこの機能は存在しています。
kaggleのtutorialよりExcelの解説ページを読む方がよほどわかりやすいのでそちらをお勧めします。
実際にデータを操作するのもexcel上で操作することのほうが視覚化もされわかりやすいのでまずそちらを試した上でpandasの機能に取り組んでみてください。なお、私もExcelで同じ会計項目のみをまとめる作業をした際に必要性などの納得を得られました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?