Skip to content

Instantly share code, notes, and snippets.

@a-mitani
a-mitani / ball_model_ex.py
Created May 6, 2021 23:22
If文を用いない赤玉白玉モデルの実装例
# x=1: 袋a, x=0: 袋b
# y=1: 赤玉, y=0: 白玉
def ball_model_no_if():
x = pyro.sample("x", dist.Bernoulli(0.5))
# xの値に応じてyの割合を変更
y = pyro.sample("y", dist.Bernoulli(2.0/3.0)) * x + pyro.sample("y", dist.Bernoulli(1.0/4.0)) * (1 - x)
return y
# plateを用いてi.i.dサンプリング
with pyro.plate("plate", size=10000):
@a-mitani
a-mitani / welford_pseudo_code.py
Created November 15, 2020 01:44
python pseudo code for welford algorithm
def var(data):
n = len(data)
m = 0
s = 0
for k in range(n):
x = data[k]
old_m = m
m += (x - m)/k
s += (x - m) * (x - old_m)
return s / (n - 1)
@a-mitani
a-mitani / rf_importance.py
Created July 23, 2020 02:49
Random forest importance
print(rf.feature_importances_)
#result
#[0.02885416 0.28571966 0.33432064 0.35110554]
@a-mitani
a-mitani / rf_interaction.py
Created July 23, 2020 02:28
用意したトイデータを学習&予測
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
lr = LinearRegression().fit(X_train, y_train)
y_pred_lr = lr.predict(X_test)
rf = RandomForestRegressor().fit(X_train, y_train)
y_pred_rf = rf.predict(X_test)
# 精度評価
fig, ax = plt.subplots()
@a-mitani
a-mitani / create_toy_dataset.py
Last active July 23, 2020 02:21
交互作用を含むトイデータの生成
def create_toy_dataset(n=100):
# 交互作用を含まない変数
ind_vars = np.random.randn(n, 2)
# 交互作用のもとになる変数
int_var_src = np.random.randn(n, 2)
X = np.hstack([ind_vars, int_var_src])
y = ind_vars[:, 1] + 2 * int_var_src[:, 0] * int_var_src[:, 1]
return X, y
X, y = create_toy_dataset(2000)
@a-mitani
a-mitani / port_setting.sh
Created April 25, 2020 20:53
ufwでのファイアウォール設定
sudo mv /etc/iptables/iptables.rules /var/tmp #iptablesの設定があるとufwが動作しないので移動(参考)。
sudo ufw status #inactiveであること確認
sudo ufw default deny #明示的に全てを遮断
sudo ufw allow 22 #22を許可
sudo ufw allow 80
sudo ufw allow 443
sudo ufw logging on #ログ出力設定
sudo ufw enable
sudo ufw status #設定が生きているか確認。
sudo shutdown -r now #設定が生きているか確認。
@a-mitani
a-mitani / sklearnによる主成分分析.ipynb
Created February 24, 2019 01:42
sklearnを用いた主成分分析:基礎編
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
import numpy as np
# ジニ係数の計算
def gini_impurity(datasets):
data_all = np.concatenate(datasets, axis=0) # データセットを結合
n_all = len(data_all) # 全サンプル数
class_set = set(data_all) #データセットに含まれているユニークなクラスのセットを取り出し
if(len(class_set) == 1): # クラスが1つしか含まれてなければ計算するまでもなくgini係数は0
return 0.0
###決定木の中身を表示するためのdotファイルの出力
from sklearn.externals.six import StringIO
with open("xor_simple.dot", 'w') as f:
f = tree.export_graphviz(clf, out_file=f)
f.close()
### 決定境界の可視化
import matplotlib.pyplot as plt
# Parameters for plot
n_classes = 2
plot_colors = "br"
plot_step = 0.05
#グラフ描画時の説明変数 x、yの最大値&最小値を算出。
#グラフ描画のメッシュを定義