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

機械学習の計算対象が偏っているとき

基本的には、upsampling か downsampling か。大体の母分布がわかっている場合は、平均分散を用いて、augmentation するのもあり。 www.kaggle.com A systematic study of the class imbalance problem in convolutional neural networks from Yuya Soneoka …

pandas の 移動平均とかの計算に便利

# 移動平均。重み付けなし df.rolling(window=3).mean() # 未来永劫平均取る的な。 df.expanding(min_periods=3).mean() # 移動平均。重み付けあり。 df.ewm(com=0.5).mean() com : float, optional Specify decay in terms of center of mass, 𝛼=1/(1+𝑐𝑜𝑚),…

文字列の数値を float 型に変換

str を 数値に変換 Nan を無視できる。 df.num.convert_objects(convert_numeric=True) #=> 0 0 #=> 1 1 #=> 2 NaN #=> 3 3 blog.mwsoft.jp

リーマン距離って

リーマン距離って、正定値行列同士の距離を正確に測る手段なのか... 不明すぎる。 math.stackexchange.com https://hal.archives-ouvertes.fr/hal-01570120/document

直和、直積を毎回わすれるので

以下のサイトでいい感じにまとめていた。 http://chem.ru.dendai.ac.jp/Ruike/ru_i.ke/3_junior3/bunshi/lec_support/lecture_9.pdf

pandas の apply を numpyで実行する場合

# axis = 0 の場合、arr をsumする。 np.apply_along_axis(sum, 0, arr) # np.vectorize とかも使える # one-hot --> label encoding y_val = np.argmax(y_val, axis=1) multiclass の xgboost 実装 from sklearn.multiclass import OneVsRestClassifier imp…

run-length encoding の解凍・圧縮

これめちゃ便利 In order to reduce the submission file size, our metric uses run-length encoding on the pixel values. Instead of submitting an exhaustive list of indices for your segmentation, you will submit pairs of values that contain a …

信号解析のフィルタリング

import scipy as sp print(sp.__version__) >>> 0.19.1 信号の作成 import numpy as np import matplotlib.pyplot as plt from scipy import signal N = 1024 # サンプル数 dt = 0.001 # サンプリング周期 [s] f1, f2, f3 = 10, 60, 300 # 周波数 [Hz] t = n…

バックプロパゲーション 計算は、分解したほうがわかりやすいかも

darden.hatenablog.com

plt のメモリについて

tick で実際のメモリ、ticks_label で表示するメモリについて、制御する。 yticks = 2 ** np.arange(0, 5) plt.yticks(np.log2(yticks)) plt.yticklabels(yticks)

np correlate について

conv と correlate は計算方向が逆になっただけで基本の考え方は一緒。 corr の 基本の計算は、c'_{av}[k] = sum_n a[n] conj(v[n+k]) な感じ。 [1, 2, 3], [0, 1, 0.5] --> 0 padding [0, 0, 1, 2, 3, 0, 0] [0, 0, 0, 1, 0.5, 0, 0] valid: 0 padding しな…

信号分析

フーリエ変換の関数。便利。 from scipy.fftpack import fft def get_fft_values(y_values, T, N, f_s): f_values = np.linspace(0.0, 1.0/(2.0*T), N//2) fft_values_ = fft(y_values) fft_values = 2.0/N * np.abs(fft_values_[0:N//2]) return f_values, …

画像前処理のtutorial

このサイトで進める。 likegeeks.com [https://docs.opencv.org/4.1.0/d7/d1b/groupimgprocmisc.html:embed:cite]

PDF からの文字認識から使えそう

qiita.com

テキスト分類のレポートライブラリについて

よくわからないが、テキストデータの分類のしやすさについてレポートを出してくれる。 github.com gensim.models.KeyedVectors.load_word2vec_forma は、crawl-300d-2M.vec (fasttext) のEmbeded を ロードしてくれる。 glove = '../../glove/glove.840B.300…

pd.DataFrame の groupby の label の指定

groupby の by はリスト指定でラベリングするのもあり。 ppap = pd.DataFrame({'a': [1,3,1,4], 'b': [2,5,2,5]}) ppap['a'].groupby(ppap['b']).sum() b 2 2 5 7 Name: a, dtype: int64

histgram の データを取得する方法

import numpy as np count, division = np.histogram(series) stackoverflow.com ちなみに、shapiro の W は検定統計量らしい。Wikipediaより x = st.norm.rvs(loc=0, scale=1, size=1000) st.shapiro(x) ==> (0.9986046552658081, 0.6241769790649414)

ls command で あるはずのファイルが参照されない

$ ls /home/mnt ls: /home/mnt にアクセスできません: そのようなファイルやディレクトリはありません このあたりを確認すればいいのか。。 $ strace -tt ls /home/mnt ... 07:40:12.552870 ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0 07:4…

複数のgpu が接続されているときの環境変数の設定

nvidia-smi で複数のgpuが存在するとき import os os.environ["CUDA_VISIBLE_DEVICES"] = "1" from keras import backend as K K.tensorflow_backend._get_available_gpus() ['/device:GPU:0'] nvidia-smi

re の [] について

以下のre.search では、 / と . 以外の文字列を検探し、group ( () ) の1番目について抽出している。 s = '../input/train.csv' re.search('/([^/\.]*)\.csv', s).group(1) # [^~] は ~以外の文字列

pandas の nan の判定方法

a = Nan assert pd.isna(a)

CNN の layer のイメージ(メモ)

keras のクラス名に準拠 GlobalAveragePooling は 各チャネルごとの平均値を 軸 0として1次元に出力 AveragePooingとの違いから、Global は 全特徴マップを一つに pooling するみたいな Flatten はただ、軸0 として1次元に並べる SeparableConv は、各チャネ…

anaconda 設定するとbase がデフォルトで activate になった

$ conda config --set auto_activate_base false stackoverflow.com

VSCode で Python の import error を出さないようにしたい

設定から、Pythonのsettings.json を追加編集することで回避できる "python.linting.pylintArgs": [ "--max-line-length=80", "--disable=W0142,W0403,W0613,W0232,R0903,R0913,C0103,R0914,C0304,F0401,W0402,E1101,W0614,C0111,C0301" ] stackoverflow.com

Mac (Homebrew) の Python3 を Python3.7 --> Python3.6 に変える話

brew の使い方もちょっと勉強になった brew info python3 # Python3.7をbrewの管理下から外す brew unlink python3 # 最新のPython3.6 をダウンロード (依存関係は無視) brew install --ignore-dependencies https://raw.githubusercontent.com/Homebrew/hom…

keras の history plot と 移動平均

history plot acc = history.history['acc'] val_acc = history.history['val_acc'] loss = history.history['loss'] val_loss = history.history['val_loss'] epochs = range(1, len(acc) + 1) plt.plot(epochs, acc, 'bo', label='Training acc') plt.plot…

statsmodels で季節性のトレンドを見る

import warnings import itertools import numpy as np import matplotlib.pyplot as plt warnings.filterwarnings("ignore") plt.style.use('fivethirtyeight') import pandas as pd import statsmodels.api as sm import matplotlib matplotlib.rcParams['…

dig コマンドの詳細

dig コマンドについて、nslookup の代替ぐらいに考えていたけど、詳細を調べてみた。 japanrock-pg.hatenablog.com

statsmodels の summary の t について

どうやら、tは 標本分布を t分布と仮定した際の coef=0 の T の値っぽい。 t が 0から遠ければ遠いほど、coef が 0でない確率が高い。要は相関がある。 from patsy import dmatrices import statsmodels.api as sm df = sm.datasets.get_rdataset("Guerry", …

バイナリ分類器の訓練と検証

ロジスティック回帰とXGB分類器のホールドアウト from sklearn.linear_model import LogisticRegression from sklearn.tree import DecisionTreeClassifier from sklearn.neighbors import KNeighborsClassifier from sklearn.neural_network import MLPClas…