BLUE DAYS
概要
どの本のどこに何の統計モデルの説明があるのか忘れてしまうのでindexとして整理。
みどり本(こちら)
3章
6章
- テーマ
ロジスティック回帰
- 推定方法
とを最尤推定
7章
- テーマ
6章のロジスティック回帰で固定効果とランダム効果(個体差) を表現
- 推定方法
ととを最尤推定
9章
10章
- テーマ
7章のGLMMを階層モデル化
- 推定方法
ととをベイズ推定
(との事前分布:無情報事前分布、の事前分布:0~10000の連続一様分布)
アヒル本(こちら)
Chapter5 - 5.1 重回帰
- テーマ
重回帰
- 推定方法
とととをベイズ推定(事前分布:無情報事前分布)
Chapter5 - 5.3 ロジスティック回帰
テーマ
ロジスティック回帰
ちなみに、
ロジット関数は
ロジット関数の逆関数であるロジスティック関数(=シグモイド関数)は
これを用いて式変換した「みどり本 6章」の式の方がスッキリしている気がするが、stanでは
logistic
関数はinv_logit
メソッドとして用意されているため、「アヒル本」はstanでの表記形式に寄せてinverselogit
の表記にしているっぽい。推定方法
とととをベイズ推定(事前分布:無情報事前分布)
Chapter5 - 5.4 ポアソン回帰
Chapter5 - 8.1 階層モデルの導入
Chapter5 - 8.2 複数の階層を持つ階層モデル
- テーマ
複数の階層を持つ階層ベイズモデル- 「との会社差でのばらつきは、全ての業界で共通」と仮定した場合
- 「との会社差でのばらつきは、業界によって異なる」と仮定した場合
- 「との会社差でのばらつきは、全ての業界で共通」と仮定した場合
- 推定方法
Chapter5 - 8.1と同様(書くのが面倒になった & ここまできたら見ればわかる)
Chapter5 - 8.4 ロジスティック回帰の階層モデル
- テーマ
ロジスティック回帰の階層モデル
- 推定方法
Chapter5 - 8.1と同様(書くのが面倒になった & ここまできたら見ればわかる)
ref
余談だが、texの添字表記がうまくいかないことがあり、こちらに非常に助けられた。
タイトル回収
KNNのoutputについて
概要
KNNのoutputの理解に少し時間がかかったので書いておく。KNNの理論説明はなし。
とりあえずKNNやる
from sklearn.neighbors import NearestNeighbors x = np.array([[0,0],[0,1],[2,2],[3,3]]) knn = NearestNeighbors(n_neighbors=3) knn.fit(x) distances, indices = knn.kneighbors(x) print(distances) print(indices)
出力は
[[0. 1. 2.82842712] [0. 1. 2.23606798] [0. 1.41421356 2.23606798] [0. 1.41421356 3.60555128]] [[0 1 2] [1 0 2] [2 3 1] [3 2 1]]
となる。
outputの理解
まず、inputのx
をxy座標の4点だと考えて、[0,0]が点0、[0,1]が点1、[2,2]が点2、[3,3]が点3とすると以下のイメージになる。
で、outputはn_neighbors=3
にしたから各点から近い3点(自分自身を含む)になっている。
indices
の[0 1 2]
は「点0に近い順が点0、点1、点2」の意味。上の図を見てもその通りである。同様に[1 0 2]
は点1、[2 3 1]
は点2、[3 2 1]
は点3に近い順になっている。
indices
のshapeは(4, 3)
だが、(点の数, n_neighbors)になっている。
distances
はいうまでもなく、indices
を距離で表しただけ。shapeも同じ。自分自身の点を含むので、0列目は必ず0(距離が0)になる。
pyenvの罠
メモ
pyenv init -
を
pyenv init --path
に変更したら直った。。。
PostgreSQLコマンド覚書
DB作成・削除
$ createdb sampledb
$ dropdb sampledb
DBと接続
$ psql sampledb
入るとターミナルのコマンドを入力する先頭の部分が$からsampledb=#に変わる
テーブル作成・削除
SQLのCREATE TABLE文でテーブル作成sampledb=# drop table sampletable;
DB一覧
sampledb=# \l
テーブル一覧
sampledb=# \z
他のDBと接続
sampledb=# \c DB名
カレントディレクトリの確認
sampledb=# \! pwd
csvファイルをテーブルにインポート
sampledb=# \copy テーブル名 from './data.csv' with csv header
headerがないcsvならheaderコマンドを削除すればok
任意の列だけインポートしたいならテーブル名(col1,col2,...)
SQLファイルを実行
sampledb=# \i ./sample.sql
ファイルの実行時間を計測したいならsampledb=# \timing \i ./sample.sql
感想
別の書き方があったり、コマンドの意味の認識間違いがある希ガスる
PostgreSQLでDB作成し、csvファイルをインポート
DB作成
sampledbというDB作成$ createdb sampledb
DBの中に入る$ psql postgres
postgres=# \c sampledb
テーブル作成
一応1つもテーブルがないことを確認sampledb=# \z
空のsampletableというテーブルを作成しておく
ただ、列数と各列の型を定義しておいたほうが良さそうだから仮に9列のテーブルを定義しておく
CREATE TABLE sampletable
(col1 INTEGER,
col2 INTEGER,
col3 INTEGER,
col4 char(50),
col5 char(50),
col6 char(50),
col7 char(50),
col8 char(50) NOT NULL,
col9 INTEGER,
PRIMARY KEY (col1));
ちなみにテーブルの削除は以下drop table sampletable;
csvファイルをインポート
sample.csvをsampledbへ入れてみる(headerあり)sampledb=# \copy sampletable from './sample.csv' with csv header
上から5行だけターミナル上に表示させるsampledb=# SELECT * FROM sampletable LIMIT 5;
感想
2回連続でPostgreSQLのちょっとしたコマンドについて書き殴ってしまったから、次回はまとめたい
PostgreSQL 基本コマンド
前提:データベース(PostgreSQL)になにかしらデータが入っている。今回はhogehogeデータベース内にhogeテーブルがある想定。
とりあえず、psqlに入って任意のデータベースにアクセス
中に入る$ psql postgres
データベースの一覧を見るpostgres=# \l
roleを確認postgres=# \du
hogehogeというデータベースに接続postgres=# \c hogehoge
テーブルの一覧を見る(テーブルはpandasのDataFrameみたいな認識をしている)hogehoge=# \z
実際にデータベース内の任意のテーブルをSQLで操作してみる
hogeというテーブルの上から5行を見る。hogehoge=# SELECT * FROM hoge LIMIT 5;
カレントディレクトリの確認hogehoge=# \! pwd
試しに上記のSQLコマンドをsample.sqlとして保存して、sample.sqlを実行。
とりあえず、カレントディレクトリから相対パスでパスを記述。
hogehoge=# \i ./Downloads/sample.sql
感想
殴り書きでした
Djangoのいつものやつ
個人的なメモ。
とりあえず、動くところまでの流れ。
mkdir test
cd test
python3 -m venv env
source env/bin/activate
python -m pip install --upgrade pip
touch requirements.txt
open requirements.txt
Django~=2.2.4
pip install -r requirements.txt
django-admin startproject mysite .
settings.pyを書き換え
TIME_ZONE = 'Asia/Tokyo'
LANGUAGE_CODE = 'ja'、STATIC_ROOT = os.path.join(BASE_DIR, 'static')
ALLOWED_HOSTS = ['127.0.0.1']
python manage.py migrate
python manage.py runserver
pip install pandas
pip install django-bootstrap4
pip install django-filter
pip install django-crispy-forms
pip install social-auth-app-django
python manage.py startapp invest
python manage.py createsuperuser
各ファイル書き換え
python manage.py makemigrations invest
python manage.py migrate invest