逆パームレストを自作した
- はじめに
- 薄すぎるMagic Keyboard
- 底上げ板を自作
- サイズを決定する
- ものを購入
- 作成
- 逆パームレスト
はじめに
たまには日記のようなことを書いていこうと思います。
最近キーボードの配列をJISからUSに変更しました。 ためしに3日間使ってみようという感じでUSを使ってみたのですが、予想以上にプログラミングがしやすくてそのままUSを使い続けようと決心しました。
そして、一昨日、家用にApple Magic Keyboardを購入しました(HHKBとかなり迷いました)。
軽いのでMacbook(JIS)とともに持ち運ぶことも苦じゃないですし、iMacとMacBookのペアリングの切り替えもケーブルでつなぎ替えるだけという楽々仕様で満足しています。
ただ一点を除いては。
続きを読む【具体例つき】scikit-learnを改変しよう ~改変版のinstall方法と改変に必要な知識のリンク集~
はじめに
この記事を読むことで、scikit-learnの中身のコードに改変を加えることができるようになることを期待している。改変に必要な知識も学習できるようリンクを用意してある。そして改変を加えたコードをpipで管理する方法も示した。 最後には具体例として、決定木のfeature_importances_を可視化するメソッドをDecisionTreeClassifierに組み込む。
- はじめに
- 本記事をおすすめしない人
- scikit-learnのディレクトリ構造の俯瞰
- 開発環境を整える
- pyenvを用いた方法
- venvを用いた方法
- 編集した内容が反映されるようにインストールする
- 環境の確認
- pip install --editable
- トラブルシューティング
- 準備完了
- 編集に必要な知識
- Pythonの知識
- scikit-learn
- scikit-learn準拠モデル
- Cythonの知識
- feature_importances_の可視化をscikit-learnに組み込む
- どういう可視化か
- DecisionTreeClassifierの改変
- 可視化、再訪
- まとめ
- ソースコード等
読んだ本のレビュー データサイエンス編
- この記事は?
- レビュー
- 今読んでる本
- 現場で使える!PyTorch開発入門
- Cython Cとの融合によるPythonの高速化
この記事は?
自分が読んだ本を時系列に並べて、独断と偏見で簡単にレビューしていきます。 データサイエンス(機械学習)のスキルが身につくと謳っている本が量産されている中、どの本を読むべきか読まないべきか、という判断の一助になるよう願っています。
この記事は新しい本を読むたびに随時更新していくつもりです。 なお各レビューには以下の点について述べています。
- 読んだときの事前知識 ... 評価は事前知識によって大きくバイアスがかかると思うので
- 良い点
- 悪い点
- おすすめしない人 ... これに該当しない方は購入して損はないと思います。
またサンプルコードがある場合はリポジトリを載せています。
続きを読む特徴量選択の今とこれから
- 特徴量選択とは
- 特徴量選択の難しさ
- 特徴量選択の手法の大別
- 教師ありの特徴量選択
- 特徴量選択のこれから
- 超高次元データと特徴量選択のアンサンブル
- 不均衡データにおける特徴量
- オンライン特徴量選択
- 深層学習を用いた特徴量選択
- 最後に
特徴量選択とは
特徴量選択(Feature Selection, 変数選択とも)はデータサイエンスにおいて非常に重要である。
例えば、製造業において欠陥品を判別するタスクを考えてみよう。 このタスクは本当に欠陥品を判別するだけがゴールなのだろうか。 本当に知りたいのは欠陥品がどうして生じるか、という点だろう。 例えば、欠陥品と関係のあるセンサーや工程と提示できたら専門家たちはそこを改良し欠陥品をそもそも生み出さずに済むことができる。 これが本当のゴールである。
ここで重要なのが特徴量選択である。
また、良い特徴量選択は以下の恩恵が期待できる。
- 学習時間を減らせる
- モデルの解釈性が向上する
- モデルの精度が向上する
- 過学習を減らせる
以前に当ブログでも特徴量選択のまとめのような記事を書いた。
これはかなり初心者向けの内容になってしまったが今回は、もっと踏み込んだ内容にしようと思う。 具体的には、特徴量選択の手法の全体像を紹介してから、需要が大きいとされる教師ありの特徴量選択について代表的な手法とライブラリをいくつか紹介する。 また、最後に最新の特徴量選択の動向も紹介する。
今回紹介する半分以上の内容は、こちらのサーベイ論文にあるので興味がある方はどうぞ。
本記事の想定読者は大学学部レベルの機械学習、確率統計、情報理論をかじったことのある方であるが、初学者にも伝わる部分があるように努力した。
特徴量選択の難しさ
例えば、100特徴量から最適な特徴量の部分集合を見つけろ、という問題は、通り試すことになる。 1通りあたり1秒で学習が終わるとしても、全通り試すには宇宙誕生から今までをあと (2200億)回繰り返さなければいけない計算になる(宇宙の年齢を秒ほどとした)。 最適な特徴量の部分集合を選ぶというのは実質不可能に近い。 この状況の中で、いかに最適な組み合わせに近いものを選択できるか、というのが特徴量選択の難しさである。
続きを読むランダムフォレストと検定を用いた特徴量選択手法 Boruta
- 特徴量選択とは
- Borutaとは
- とりあえず使ってみる
- ベースラインの判別
- Borutaの判別
- Borutaのアイデアの概要
- Borutaのアルゴリズム
- 1. 判別に寄与しないはずの偽の特徴量を作る。
- 2. 偽の特徴量と一緒にランダムフォレストを訓練。
- 3. 各特徴量の重要度と偽の特徴量の特徴量を比較。
- 4. 複数回比較し検定を行うことで、本当に重要な特徴量のみを選択。
- 検定について
- まとめ
- 補足
- 使う際のTips等 2019/01/06追記
- 参考
特徴量選択とは
特徴量選択(Feature Selection, 変数選択とも)はデータサイエンスにおいて非常に重要である。 Kaggle等のコンペティションではひたすら判別の精度を重要視するが、実務上どうしてそのような判別をしたのかという理由のほうが大事である(回帰問題も同様)。 例えば、なにかの製造工程をイメージしてみよう。 当然欠陥品は生じるだろうが、この欠陥品を見分けるシステムよりも欠陥品を減らせる改良のほうが良いだろう(もちろん見分けるのも大事だが)。 そこで、判別においてどのような特徴量が重要だったか選ぶことができれば、改良への糸口が見えてくるだろう。
また、特徴量選択した結果、モデルの学習や推論が高速化されたり、過学習しづらくなったり、結果判別の精度が良くなったりする。
Borutaとは
ランダムフォレストと検定を用いた特徴量選択の方法の一つである。 Witold R. Rudnicki, Miron B. Kursaらが考案。
Python実装 (バグあり。まとめ後に補足します。)(アップデートされてました pip install Boruta
しましょう)
(名前の由来はスラヴ神話の森の神の名前らしいです。こんな見た目してます。)
このBorutaという手法は経験上非常に強力で、判別や回帰の性能が著しく低下したことはない。低下しても誤差の範囲内。むしろ性能が良くなることが多い。
続きを読む