Tech Trend Tokyo #7に参加してきました
はじめに
Tech Trend Tokyo #7にメディア・ブログ枠で参加してきました。テーマは「【Pythonで機械学習】機械学習と言語処理を活用してみる」でした。
感想
PyConJP 2018で「テキストマイニングによるTwitter個人アカウントの性格推定」というタイトルでLTをしてきましたが、そこでランダムフォレストを使ったので知っている内容が多くあり良い復習になりました!
GridSearchCVは知らなかったので勉強になりました!活用していきたいです。
早速アウトプットとして、今回のボストンデータセットの練習問題をGitHubにあげました。
私はpyenvやanacondaはトラブルが多くて好きじゃないのでPipenvを用いた環境構築をしています。
利用される方はPython3.7とPipenvをインストールしてください。
中島さんのリポジトリはこちらです。
ネットワーキングも素敵な方とお話できましたし、ピザも美味しかったです。ごちそうさまです。ありがとうございました。
今回お話できなかった方もぜひつながりましょう〜!
フォローお待ちしております。
主催の株式会社GIGのスキルシェアサービス Workship、
講師の中島さんがCTOを務めるIGS株式会社のSPI、ESに続く第3の新卒採用ツール Grow360 も面白そうなサービスなので要チェックですね。
以下メモ書きです。(メモしきれなかった部分もあります。すみません。)
メモ書き
自己紹介
中島正成さん(IGS株式会社 執行役員CTO)
2011年、株式会社メタップスの取締役CTOとして立ち上げに参画。機械学習とデータサイエンスのプロダクトインプリメントに取り組む。
その後、エン・ジャパン株式会社経営戦略室、個人事業での技術アドバイザー、経営アドバイザーを経て、IGS株式会社に執行役員CTOとしてジョイン。HR領域、人材評価領域のA.I活用プロダクト開発と、教育領域へのA.I活用プロダクト開発に取り組む。
AIといいたくないけどAIの話 part4
- 第六回ある
- 今回はスコア予測の実践
回帰と判別
- 回帰モデル
- 単回帰モデル
- 重回帰モデル
- 判別(分類)モデル
教師なし学習
- 出力すべきものがあらかじめ決まっていないという点が教師あり学習と異なる。
- データの背後に存在する本質的な構造を抽出するために用いられる。
教師あり学習
- 事前に与えられたデータをいわば例題とみなしてガイドラインにのっとり学習させる。
教師あり学習
- 回帰
- 線形回帰
- ロジスティック回帰
- SVM *
- ツリー
- 決定木
- 回帰木
- ランダムフォレスト *
- 勾配ブースティング
- ニューラルネットワーク
- CNN
- RNN
- パーセプトロン *
教師なし学習
練習問題
ランダムフォレストとは
ボストンデータセットとは
精度を向上するためにはどうすれば良いか
- ハイパーパラメータチューニング
- データクリーニング
ランダムフォレストのハイパーパラメータ
ハイパーパラメータ | 説明 |
---|---|
n_estimators | バギングに用いる決定木の個数 |
max_features | 最適な分割をするために考慮するフィーチャーの数 |
max_depth | 決定木の深さの最大値、過学習対策にこの値の調整が有効 |
min_samples_split | ノードを分割するために必要な最少サンプルサイズ |
min_samples_leaf | 葉を構成するのに必要な最小限のサンプルの数 |
max_leaf_nodes | 生成される決定木における最大の葉の数 |
n_jobs | フィットおよび予測の際に用いるスレッド数 |
random_state | 乱数シード |
warm_start | Trueを設定するとすでにフィットしたモデルに学習を追加 |
自動でいい感じのチューニング
- sklearnのGridSearchCVを使う
from sklearn.model_selection import GridSearchCV params = {'n_estimators': [3, 10, 100, 1000, 10000], 'n_jobs': [-1]} cv = GridSearchCV( RandomForestRegressor(), params, cv=10, scoring='mean_squared_error', n_jobs=-1, verbose=True ) warnings.filterwarnings('ignore') cv.fit(train_data_bs, train_labels_bs)
※ 注意
- GridSearchCVを利用する場合は、scikit-learn以外にnumpy, scipyが必要。
from sklearn.grid_search import GridSearchCV
だとno module named 'sklearn.grid_search'
となってしまうため、from sklearn.model_selection import GridSearchCV
とする。