ともにゃん的データ分析ブログ

勉強したことの備忘録とかね

2017-01-01から1年間の記事一覧

Pythonのpandasで大きなデータを扱うときにメモリ効率を上げる方法メモ

最近Pythonを使って大きなデータフレームを結合したり、そのデータフレームに対してメソッドを使って処理をしていますが、頻繁に"Memory Error" に遭遇しています。そんな中で色々探し回って見つけたTips的なものをメモとして残しておきます。 pandas.DataFr…

pandasのDataFrameのplotメソッドを使って描画するときにプロットを並べて表示する方法

pandasのDataFrameのplotメソッドを使って描画するときに、プロットを並べて表示する方法のメモ例 import matplotlib.pyplot as plt import pandas as pd fig, axes = plt.subplots(nrows=1, ncols=2, squeeze=False) df1.plot(kind="bar", x="x", y="y", ax…

XGBoostの概要

XGBoostの凄さに最近気がついたので、もうちょっと詳しく知りたいと思って以下の論文を読みました。XGBoost: A Scalable Tree Boosting Systemせっかくなので、簡単にまとめてみたいと思います。。。と思っていたら結構な量になってしいました。 何か間違い…

tree系のアルゴリズム(決定木・ランダムフォレスト・xgboostなど)で目的変数に対数を取ってはいけない

よくよく考えたら当たり前のことに気づいたのでメモです。 回帰とかをするときに、例えば目的変数が正の値しか取り得ないような場合、目的変数を対数変換したりします。 そのノリで、タイトルに挙げたのtree系のアルゴリズムを適用するときにも対数変換をし…

【R】データフレームにcharacterやfactorの列が含まれているときに、その列をすべてダミー変数化する関数

タイトル通りの関数を作りましたのでここに置いておきます。 データフレームに文字列が入ってて分析を回せない、、、その列だけ取り出してダミー化してまた結合してって面倒くせえ、、、ってときにお使いください。{dummies}パッケージを使用していますので…

【R】ランダムフォレストを実行できるパッケージ{ranger}用の、変数の重要度を可視化する関数

タイトル通りの関数を作ったのでここに置いておきます。 可視化には{ggplot2}を使用しています。 # ranger_fitにrangerで構築したモデルを、topに表示したい変数の個数を指定します。 # topに値を指定しない場合は全変数の重要度を表示します。変数の数が多…

【R】データフレームを渡すと欠損値のある列を抜いてくれる関数

タイトル通りの関数を作ったのでここに置いておきます。 # データフレーム df から欠損値のある列を除去する関数 removeNaCol <- function(df){ is_na <- apply(df, 2, function(x) sum(is.na(x))) > 0 return(df[,which(!is_na)]) }

kaggleのtitanicで0.81340を出した話

はじめに みんな大好き(?)kaggleのtitanicコンペTitanic: Machine Learning from Disaster | Kaggleで0.81340のスコアを出したので色々まとめてみましたという記事です。このコンペはtitanic号が沈没したときのデータを使用して、乗客が生存したか死亡し…

ハミルトニアン・モンテカルロ(HMC)法のざっくりとした解説とPythonによる実装

ベイズモデリングが流行っている中で多くのRユーザーはStanを使って解析をしているんではないかと思います。そして、Stanはハミルトニアン・モンテカルロ(HMC)法と呼ばれる方法で事後分布からのサンプルを得ています。色々と解説記事はありますが、超ざっく…

【python】beautifulsoupでYahoo! ファイナンスから日経平均のデータをスクレイピング

ずっっっっっと前にbeautifulsoupでスクレイピングしたことがあったけど、使い方を完全に忘れてたので再び入門的なことをやってみた。とりあえずYahoo! Financeから日経225に関するデータを引っ張ってこようかと思います。 from bs4 import BeautifulSoup im…

【R】ダミー変数を一度に生成する関数

探せばあるんだろうけど、データフレームを引数に複数列を一度にダミー変数化する関数を作りました。 よければ使ってください。 使い方:(0) {dummies} パッケージをインストールする(1) 引数 data にダミー変数化したいデータフレームを入れる(2) 回帰等で…

ベイジアン仮説検定

前に学内の勉強会でベイジアン仮説検定について発表したので、その時のスライドをアップロードします。ベイズを使って頻度主義の区間推定的なものだけでなく、点推定値の検定を行う方法も紹介しています。 ベイジアン仮説検定 from Tomonyan