Dive into hoge

データ分析関連の備忘録

exotic

論文の読み方・書き方

グラム先生のチュートリアル資料「国際会議論文の読み方・書き方」 http://www.phontron.com/slides/neubig15nlptutorial.pdf「論文の読み方・書き方」改め ArXiv時代の論文の読み方 こう書くと落ちる論文の書き方 AHC-Lab M1勉強会 論文の読み方・書き方 fr…

集計の軸を探す方法

下記資料から抜粋。 speakerdeck.com 仮説と集計結果が異なる場合、取るアプローチ。 エキスパートジャッジメントで探す (深いドメイン知識が必要)でいい感じのパラメタ探す 因果推論で探す 共変量の影響を除外して目的変数への影響を知りたい。 傾向スコ…

BigQueryでのGA360データ利用

やりたいこと GA360と連携されたBigQuery(以下BQ)でカスタムディメンションの集計 対象テーブルを動的にする (平日のみ実行。月曜は金土日を対象、それ以外の平日は前日を対象として抽出) 前提 このエントリで説明しないこと。 GA360とBQの連携の仕方 カ…

pipとconda

pipとcondaとはなにか? pipはPython標準のパッケージ管理ツールでPyPIからインストールする。 condaはAnacondaのパッケージ管理ツールでAnaconda社が提供するレポジトリからパッケージをインストールする(だからPyPIにはあるけどAnacondaにはない場合があ…

pandas操作⑧:queryに変数を指定する場合

queryで条件指定にリストを使いたくて、生のリストではなく変数を入れたい場合。 # tmpはリスト 何らかのデータフレーム.query('カラム名==tmp') そのまま変数入れるとエラーになる。 UndefinedVariableError: name 'tmp' is not defined 下記のように変数の…

xgboost:エラー編

RandomForestのグリッドサーチと同じようにxgboostでもやろうとした。下記はmax_depthとmin_child_weightのみを使ったグリッドサーチ。 X_train, X_test, y_train, y_testはpandas。 GridSearchCVのパラメーターは今回の話に関係ないから無視してよい。 from…

pandas操作⑦:列表示

列が省略されるときに全表示させたい デフォルトは20らしいので好きな数値に変更する。 # pandasの表示列数設定 pd.set_option('display.max_columns',65) レコード毎にmaxの列番号を抽出したい 最大値の列番号をmax列に突っ込む。 # DataFrameでレコード毎…

pandas操作⑥:横持ち変換

縦持ち(レコード形式)から横持ち(表形式)への変換をするとき、スマートではないのはわかっていたけどSQLで横持ち変換したい値に応じたcase文をシコシコ書いていた。値が増えたりしたときにまた書き換える必要あるのでこれはクソなコードである。pythonに…

pandas操作⑤:複数条件で抽出

複数条件でpandasから抽出したいときに下記エラー。 ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all(). 各条件は丸括弧で括って、かつアンド条件のときはandではダメで&を使わないといけない。 …

pandas操作④:結合(concat)、いらない行除外、インデックス振り直し、カウントして確認

①いくつか作ったDataFrameを統合して、 ②ある条件に合致するいらない行以外を抽出して、 ③インデックスが飛び飛びになっているから振り直しして、 ④最後にカウント import pandas as pd test = pd.concat([hoge1, hoge2, hoge3, hoge4]) #① test = test[test…

pandas操作③:作業ディレクトリ確認・変更、エンコード失敗したとき

何かファイルを読み取ってDataFrameに入れたいとき、どこが作業ディレクトリだろう、という場合。 import os os.getcwd() で、これを変えたい場合は下記。 os.chdir('変更したいフォルダへのパス') これをread_csvやread_tableとかで読み取って import panda…

sklearn.metrics.f1_scoreでエラーが出るとき

from sklearn.metrics import f1_score f1_score(検証データ, 予測データ) 上記モデル検証でF-score出すときに下記エラーが出た。ValueError: pos_label=1 is not a valid label: array([ 0., 21.])多分ラベルがだめってことなんだろうけど確認する(jupyter…

Redshift既存テーブルへの操作:置換、カラム追加、データ型変換、値追加

テーブルコピー 置換したいが既存のものをダイレクトに置換して失敗すると怖いからまずはテーブルコピーしたい。 SELECT * INTO <コピー先テーブル名> FROM <コピー元テーブル名> 置換 コピーしたテーブルにやりたい置換をかける。 UPDATE <テーブル名> SET …

EC2にsshで接続しているときのタイムアウトを防止する

EC2にssh接続してPython環境を利用している場合、ちょっと処理に時間がかかっていると接続がきれてしまう。これを回避するためにには~/.ssh/configに"ServerAliveInterval 60"と書き込む。でも操作に慣れていないと毎回忘れるので備忘として下記のステップで…

pandas操作②:arrayから変換、カラム名をコピーから作成

よく忘れるので備忘2。 arrayをDataFrameに変換したいとき 単純にDataFrameにつっこむだけ。 import numpy as np import pandas as pd a = np.array([[1,2,3], [4,5,6]]) df_a = pd.DataFrame(a) 一応記載すると、df_aは下記のようになる 0 1 2 0 1 2 3 1 4…

ローカルでの処理結果をRedshiftに入れる

spark使わないでローカルで素朴にやる時の方法 sparkのpipeline使えば入出力は簡単だけど、まだ使い方がわからない…けどsklearn使えばローカル環境で色々できるんだオレは!というヒト向けに、下記のRedshiftに接続してデータ受け取ってPandasに入れるやつの…

Tableauで2軸グラフ(ヒストグラム&累積%線グラフ)

dev.classmethod.jp

欠損値を0で埋める

データフレームはすでに作っていて欠損値NaNが入っている前提。 import numpy as np df = df.replace(np.NaN,0)

redshiftからデータ読み込んでpandasのデータフレームに入れる

まずはRedshiftに接続する。 import psycopg2 import redshift_sqlalchemy from sqlalchemy import create_engine engine = create_engine('{dialect}+{driver}://{user}:{pwd}@{url}:{port}/{db}'.format( dialect = 'redshift', driver = 'psycopg2', user…

Tableau基礎

web-kaizen.co.jp移動平均 web-kaizen.co.jp

cdコマンド(ディレクトリ移動)

www.garunimo.com

EC2にsshでログインできなくなった場合の対処法

環境構築時にハマったので備忘として。 gist.github.com

emacsについて

emacsのコピペのメカニズム コピーアンドペーストを使いこなす(松山智大) — ありえるえりあemacsを使って文章を書く Emacs を使って,文章を書く - Linux による Web プログラミング入門

SSHの公開鍵を作成しGithubに登録する手順

最初にしかやらないから忘れがちなので備忘として。 monsat.hatenablog.com qiita.com

クラスタリング

<非階層的手法> 評価関数(例えばクラスタ内誤差平方和、SSE)を定義し、これが最適になるような分割する。 k-meansの流れは次の4段階にまとめられる。1: k個の中心点をランダムに選ぶ。 2: 各サンプルを最も近い中心点に割り当てクラスタを作る。 3: クラ…

numpy.ndarrayにappendしたいとき

numpy.ndarrayにattributionとしてappendは用意されていない。 例えば x = np.arange(-100,101,1) というとき、 x.append ではattribution errorとなる(listと同じようには扱えない)。 np.append(x, 1) とやる必要がある(1には追加したい要素)

Inputデータの次元が合わないとエラーが出たとき

まず前提のimportが下記。 import pandas as pd from sklearn.model_selection import train_test_split from sklearn.svm import SVCデータセットはこれ。ここからが本文。 df = pd.read_csv("Wholesale customers data.csv") X = pd.DataFrame(df, columns…

pandas操作①:loc, iloc, ixの違い

StandardScalerとMinMaxScaler

sklearnの標準化と規格化モジュールの比較。 正規化、標準化とは 正規化:正規化とは、特徴量の値の範囲を一定の範囲におさめる変換標準化:標準化とは、特徴量の平均を0、分散を1にする変換 基本は、標準化を用いる。正規化だと、外れ値が強く影響してしま…

numpyの配列のスライス

すぐに忘れる。備忘。