Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
特徴量の重要度計算を実装する ランダムフォレストを実装する
Search
NearMeの技術発表資料です
PRO
September 28, 2023
160
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
特徴量の重要度計算を実装する ランダムフォレストを実装する
NearMeの技術発表資料です
PRO
September 28, 2023
More Decks by NearMeの技術発表資料です
See All by NearMeの技術発表資料です
PosthogのA/Bテスト機能の紹介
nearme_tech
PRO
1
21
AIフレンドリーなプロダクトに向けて
nearme_tech
PRO
1
50
初めてのLean言語
nearme_tech
PRO
0
76
Apache Airflow Workflow orchestration without turning cron into spaghetti
nearme_tech
PRO
1
21
実務で役立つ幾何学 ボロノイ図の基礎から グラフ・ネットワーク応用まで
nearme_tech
PRO
1
59
SQL/ID抽出タスクから考える 実践的なハルシネーション対策
nearme_tech
PRO
1
67
OpenCode & Local LLM
nearme_tech
PRO
0
200
OpenCode Introduction
nearme_tech
PRO
0
59
【Browser Automation × AI】 Stagehandを試してみよう
nearme_tech
PRO
0
160
Featured
See All Featured
Tell your own story through comics
letsgokoyo
1
1k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
420
Chasing Engaging Ingredients in Design
codingconduct
0
240
Color Theory Basics | Prateek | Gurzu
gurzu
0
400
Darren the Foodie - Storyboard
khoart
PRO
3
3.5k
Utilizing Notion as your number one productivity tool
mfonobong
4
450
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.5k
Abbi's Birthday
coloredviolet
3
8.8k
The SEO identity crisis: Don't let AI make you average
varn
0
520
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.8k
Transcript
0 特徴量の重要度計算を実装する ランダムフォレストを実装する 2023-09-15 第60回NearMe技術勉強会 Takuma Kakinoue
1 今回の実装のコミット https://github.com/kakky-hacker/algorithm_sandbox/commit/8f466be9c1fae0d7 bf3bc1bff1a5d1327e4a324d 1
2 Feature importanceの実装 • Feature importance の2種類の定義 • 分割に使われた回数(split) •
分割において得られた情報ゲインの総和(gain) ← こちらを採⽤ class Node: … def feature_importance(self, importance_value): if not self.is_leaf: importance_value[self.split_feature_index] += self.gain self.left_node.feature_importance(importance_value) self.right_node.feature_importance(importance_value) return importance_value ルートノードから 情報ゲインを再帰的に ⾜し合わせていく
3 ランダムフォレストの実装 • 実装としては決定⽊を並列にアンサンブルするだけ • 既存の決定⽊の変更箇所(core.py) ◦ 決定⽊で使⽤しない特徴量をマスク形式で⼊⼒に加える • 新規実装(random_forest.py)
◦ ランダムフォレストのメイン処理 ▪ 特徴量マスクをランダムに⽣成して決定⽊学習 ▪ 推論時は、各決定⽊の出⼒を多数決 3
4 Borutaの実装(途中) • Borutaとは • 特徴量選択⼿法の1つ • ランダムな特徴量(shadow feature)を⼊⼒に結合し、 オリジナル特徴量とランダムな特徴量の重要度を⽐較する
• 学習を100回⾏い、上記⽐較のt検定を実施し、 真に重要なオリジナル特徴量を選択する 4
5 次回予告 • ⾃作ランダムフォレストとscikit-learnのランダムフォレストの 性能を⽐較する。 • 勾配ブースティングを実装する。 • ⾃動ハイパーパラメータチューニングを実装する。 5
6 Thank you