Home

MacにLightGBMを再インストール

LightGBMを使おうと思いpyhtonのnotebook上でimportしようとしたら、エラーが出た。 from LightGBM import LGBMClassifier Output (Excerpt): OSError: dlopen(/usr/local/lib/python3.6/site-packages/LightGBM/lib_LightGBM.so, 6): Library not loaded: /usr/local/opt/gcc/lib/gcc/7/libgomp.1.dylib Referenced from: /usr/local/lib/python3.6/site-packages/LightGBM/lib_LightGBM.so ...

Read more

Juliaを使ってKaggleのhouse pricesの問題を試してみた

今回はJuliaという比較的新しめの言語でKaggleをやってみることにした. まだKaggleも大してやれていないのになぜ今まで触ったこと無い言語を試してみたかというと,社内のハッカソンでやることになったから. Juliaは実行時コンパイルすることでPythonより高速に計算できることを売りにしている言語のようだ (だが今回の簡単なKernelではその良さは享受できず...).どんな言語かはこちらとかを見ればわかると思う→Python使いをJuliaに引き込むサンプル集 題材にしたKaggleのコンペはHouse Prices: Advanced Regression Techniquesで,アイオワ州のエイムズにある家についての様々な情報 (特徴量の数が79個) から家の値段を...

Read more

Jekyllでjupyter notebookの画像を使う方法

最近jupyter notebookを使うことが多くなったが,notebookで作ったグラフをブログに載せるのが面倒で,いい方法はないかと探っていた. こちらのブログにずばりな方法があったのでここでもやり方をメモしておく. 方法: jupyter notebookを編集する 編集したnotebookを以下のコマンドでmarkdown形式に変換する jupyter nbconvert --to markdown jupyter-notebook-with-jekyll.ipynb jupyter-notebook-with-jekyll_files (jupyter-notebook-with-jekyll_filesは画像の出力されるディレクトリ名.省略可.) ma...

Read more

KaggleのTitanic問題を試してみた4

前回の続編.feature engineeringした.スコアは0.78になった(前回は0.72). 結果を載せたjupyter notebookはこちら. 前回までは”Ticket”, “SibSp”, “Parch”, “Fare”, “Cabin”, “Embarked”の属性は扱うのが面倒だったので削除していたが,今回はそれぞれの属性と”Survived”との相関を可視化しつつ処理の方法を決めていった.また,データの分布を見て偏りが大きい場合はlogを取って正規分布に近づける処理も行った.結果として前回よりも0.06精度が向上しているので,やったかいはあったといえる. Titanicは飽きてきたので,今後は別の問題にチャレンジするか機械学習のアルゴリズムの理解を行っていく...

Read more

KaggleのTitanic問題を試してみた3

前回の続編.色んな機械学習のアルゴリズムを試して,良さそうなやつ数個をVotingClassifierでアンサンブル学習して精度を出している. 結論から言うと今回のスコアは0.72で,前回の0.71よりもちょっとだけ良くなってる (誤差の範囲か?) やったことはいつもの通りgistのjupyter notebookに書いた. アルゴリズムを色々なものを試してみたものの,データの前処理の方は特に触っていないのでそんなに精度が上がることは期待していなかったが,ほとんど変わらないとはちょっと意外だった.やはりまだほとんどのデータの属性を捨てているのでアルゴリズムをいくら頑張っても効果は薄いんだろうな. 使ってみたアルゴリズムは以下の通り. SVC Decision Tree...

Read more

KaggleのTitanic問題を試してみた2

前回の続編.データの前処理を前回よりも少し行った. 行ったことの説明はjupyter notebookのこちらのgistに書いてあるので,そちらを参照してもらえればと思う. 今回はデータの前処理として,名前の敬称 (MrとかMrsとか) を抽出して, 年齢の欠損値の補完に利用してみた.結果としては前回よりも約8%精度が向上しているので 意味はあったと思うのだが,年齢の欠損値の補完を平均値ではなく中央値にすると 前回よりも精度が下がる,という現象が起こって,その結果の解釈があまりできず 困った. まあ,敬称別に分けたときにMissやMrsなどの敬称を持つデータ数がかなり少なくなったので, 偏りが大きくなりそのような結果になったのかもしれない. 平均値や中央値以外にもknnで欠損値の...

Read more

KaggleのTitanic問題を試してみた

データ解析コンペサイトのKaggleに登録して,試しにチュートリアルをやってみたので記事に上げておく. Kaggleについての説明は色んなところでされているので細かくは行わないが,企業から出されたデータ解析のお題を解いて,賞金をもらったりデータサイエンス界隈での知名度を上げたりするのに使われるサイト.訓練データとテストデータが渡され,訓練データを元にモデリングしてテストデータで予測した結果を投稿するとその結果が返り,結果に基づいて順位が決まる,という流れになっているようだ. Kaggleでは企業から出されるお題以外にもチュートリアルがいくつかあり,その中でも一番メジャーと思われるなものがこのTitanic問題である.タイタニック号の乗客についての情報から沈没事件の際の乗客の生死を予測...

Read more

HMMに使われているアルゴリズムの詳細とサンプル

HMMに使われているアルゴリズム (Baum-Welch, Forward-Backward, Viterbi) の理解を深めるために証明を行ったので,ここにリンクを載せておく.ただし一部証明ができない部分があった. (Baum-Welchの\(\Sigma_k\)の期待値を最大化するところの行列の微分が分からなかった.最終的な答えがわかっているので辿り着けているところが大いにあるので,式変形がどっかで間違っている可能性も十分ある.) 18/01/16追記.\(\Sigma_k\)の期待値を最大化する式の導出ができた.PRMLのAppendixに行列の微分についての公式があり,それを参考にすることでできた. hmmアルゴリズムメモ また,アルゴリズムの実装ではないけど使い方とし...

Read more