2020.01.01今回は『Kaggleで勝つデータ分析の技術』の第4章、モデルの作成についてです。著者の方の分析コンペ用のクラスやフォルダの構成の紹介など、至れり尽せりの内容になっています。Kaggleで勝つデータ分析の技術Kaggleなどのデータ分析コンペでは、実際のデータを扱うため、機械学習の解説書にはあまり載っていないような手法やテクニックが数多く活用されています。これらを理解し自身で使えるようにしておくことはコンペだけでなく、実務でのモデル構築において非常に役に立ちます。特徴量の作り方,バリデーション,パラメータチューニングなどについて,一般的な書籍ではあまり言及されない暗黙知やポイントについて記述しています。・特徴量作成が最も重要で、分析コンペの半分から8割の作業時間は特徴量作成に費やす・ハイパーパラメータは、変更したときにどのくらい影響があるか時折見ながら、本格的な調整は終盤に行う・モデルはGBDTでまずは進めていき、タスクの性質によってニューラルネットを検討したり、アンサンブルを考える場合には他のモデルも作成する・データやタスクの理解が進むとともに、バリデーションの枠組みを変更することもあるバリデーションは、クロスバリデーションしておけば間違いないクロスバリデーションでモデルの学習と評価を行った後、テストデータに対してどのように予測を行うかは「各foldで学習したモデルを保存しておき、それらのモデルの予測値の平均をとる」、「改めて学習データ全部を使って学習させて、そのモデルで予測する」どちらでも良い。→学習に用いる乱数シードを変えただけで平均をとることもある分析コンペのモデルでは、基本的にGBDT、タスクによってはニューラルネットを選ぶのが定石。線形モデルやkNNなどは単体の精度はそれほどだが、アンサンブルで使うことがあるSVMは精度や計算速度が他と比べて見劣りするため、あまり使われないscikit-learnのドキュメントにはモデルの選び方として図4.8がありますが、データが十分にあるテーブルデータの回帰や分類のタスクでは、GBDTで上手くいくことが多く、このように細かに条件で分岐させる必要はあまりないでしょう。・精度が高い・パラメータチューニングをしなくても精度が出やすい・不要な特徴量を追加しても精度が落ちにくい最近はxgboostよりもlightgbmの方が高速なので人気ニューラルネットはテーブルデータに対しては、中間層が2から4層程度の全結合層がよく使われる。最近はRNNが利用されることも。notebook上で検証していますが、lightgbmでアーリーストッピングを使う際、predictメソッドでnum_iteration=model.best_iterationを指定しなくてもmodel.best_iterationを反映してくれるんですね。いう仕様なのでしょうか・・・。アルゴリズムを扱うためのフレームワーク。適用...blog.amedama.jpKaggleチュートリアルTitanicで上位1%に入った話。(0.87081)前回書いた「KaggleチュートリアルTitanicで上位3%以内に入るには。久々にやり直した結果上位1%の0.87081を出せたのでどのようにしたのかを書いていきます。lp-tech.net個別のモデルの考え方やテクニックが満載で、とても勉強になる章でした。今回は『Kaggleで勝つデータ分析の技術』の第5章、モデルの評価についてです。この章では、モデルを適切に評価するためのポイントやテクニックを学びます。以下、第5章の備忘録(メモ、引用)と実装になります。備忘録...engineeeer.com2020.01.02Kaggleで勝つデータ分析の技術Kaggleなどのデータ分析コンペでは、実際のデータを扱うため、機械学習の解説書にはあまり載っていないような手法やテクニックが数多く活用されています。これらを理解し自身で使えるようにしておくことはコンペだけでなく、実務でのモデル構築において非常に役に立ちます。特徴量の作り方,バリデーション,パラメータチューニングなどについて,一般的な書籍ではあまり言及されない暗黙知やポイントについて記述しています。研究所で働くエンジニアのブログ関連記事PythonmultiprocessingでBeautifulSoupのオブジェクトを扱おうとしたらRecursionErrorが発生した時の対処法。BeautifulSoup4によるウェブスクレイピングで、multiprocessingを使って並列処理するときに嵌ったエラーの対処法。「チェンジリーダーの哲学」という連載で、カプコン会長兼CEOの辻本憲三氏のインタビューが載っていました。以下は、印象深かった部分の抜粋です。pytestを実行しようとすると、身に覚えのない以下のようなエラーが発生する。今回は『Kaggleで勝つデータ分析の技術』の第5章、モデルの評価についてです。この章では、モデルを適切に評価するためのポイントやテクニックを学びます。以下、第5章の備忘録(メモ、引用)と実装になります。備忘録...Python【Python】lambda式を使うときに気をつけたいことみなさま、lambda式はご存知でしょうか。Pythonにおいてlambdaとは無名関数を表現するもので、関数を名前付けされずに定義できる優れものです。practice)』という本を再読しています。今日は、コードの表面上の改善について印象的な内容をメモしておきます。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。上に表示された文字を入力してください。メーカーの研究所に入所。研究や開発に従事しており、普段はプログラミングをしたり論文を読んだりしています。ブログは趣味の学びのアウトプットです。本ブログが何かのお役に立ちましたら幸いです。研究所で働くエンジニアのブログ.。