和風ましらに

機械学習とか勉強したことを書き認めるブログ

Prophetライブラリにおけるハイパーパラメータ

Prophetライブラリにおけるハイパーパラメータ: changepoint_prior_scale: トレンドの柔軟性を制御するパラメータで、トレンドの変化をどれだけ滑らかにするかを調整 holidays_prior_scale: 休日の影響を制御するパラメータで、休日の効果の大きさを調整 se…

時系列分析 - データ解析編 ~Prophet

概要 時系列分析に際して、Prophet を先ずは試す それに際し、アルゴリズムの概要を整理した 簡単に原理について このアルゴリズムは、一般化加法モデル(GAM)になり、次の要素で構成されています。 y ( t ) = g ( t ) + s ( t ) + h ( t ) + ϵ t , g(t): ト…

時系列分析 - データ準備編(BTC価格予測)

何をしているか 時系列予測の題材として、BTCの価格予測をする それに際して、ひとまずどこかからデータを引っ張ってくる必要がある ひとまず、binanceのデータを活用して、データの調達をした 作業詳細 データ取得 仮想通貨取引所の大手であるbinanceを公開…

スタッキングについて考えた

今回はスタッキングについて。 概要 個々の学習器を結合して、より複雑度の高い学習モデルを構築することが目的です。 学習データの一部を一段階目のモデルの学習として使用し、二段階目の学習時に、一段階目の出力結果を特徴量として活用する方法。 (スタッ…

最急降下法とニュートン法

機械学習で用いられているパラメーター学習法である、最急降下法とニュートン法について整理。 基本的には、こちらの文章を参考にさせていただきました。 https://brage.bibsys.no/xmlui/bitstream/handle/11250/2433761/16128_FULLTEXT.pdf 書いていて面倒…

勾配ブースティングを説明してみた

勾配ブースティングについて、ざくっと整理。 アルゴリズムの基本原理は、 「構築した学習器まででの予想値と実測値の残差(勾配)を次の学習器で学習する。」 目的変数が二乗誤差の場合は、 実測値と予測値の差分が、次の学習器での学習対象となります。 な…

Google Colaboratoryでローカル環境と連携させる方法

Google Colabとは、環境構築がほぼ不要でJupyter Notebookを触ることができ、GPUも一定無料で使えるという最強のサービスのことです。 Preferred Networks が最近出した記事で触る機会があったのと、データを読み込ませる連携に困ったのでメモ Google Develo…

matplotlibのsubplotを使った図の作成

matplotlibの使い方、subplot関数の使い方についてまとめました 基本準備 Irisのデータを使う import numpy as np import pandas as pd import matplotlib.pyplot as plt df = sns.load_dataset("iris") 通常のグラフ作成 軸の範囲・表示値設定 xlim:x軸の…

「生命情報向けの機械学習」を触ってみた

「生命情報向けの機械学習入門」という内容で、生物×機械学習という分野でコンテンツを作られている方のgitを見つけて色々触ってみたので、書き留めておきます。 github.com 「4章 : 配列を解析する深層学習」という内容を触ってみました。 内容としては、以…

カテゴリ変数の取り扱い方法

都道府県の名称など、値自体に意味が無い変数を扱う場合は、そのまま機械学習にかけてしまうと意味不明な結果が出る。 図1 都道府県と目的変数 そこで、よく使うカテゴリ変数の対処方法をまとめた。 ダミー変数化 変数を各種類ごとのカラムに分けて、0,1表記…

機械学習を活用した変数重要度評価

モデルを作った後、説明する際に 「ここら辺の特徴量が効いてます。」 的なことを言わないといけない。 そこで、変数重要度をよく使う。 ランダムフォレストやXGboostでの変数の重要度評価をメモがてらまとめてみた。 RandomForestを活用した変数重要度評価 …

pandasでDataFrameを表示させるときに省略させない方法

何もしないでDataFrameを表示させると、カラムが省略されたり行が省略されたりする。 メモ書きに、DataFrameを省略させない方法について記載する。 カラムを省略させない方法 以下のコードをDataFrameを表示させる前に書いておけばいい。 pd.set_option('dis…

Seabornによるグラフの作成 ~相関関係の可視化~

前回に引き続き、seabornの中の関数について、自分のメモがてら紹介していきます。 今回は相関関係の可視化を中心に取り扱います。 import seaborn as sns import pandas as pd df = sns.load_dataset("iris") #データ準備 df['test'] = df['petal_length'] …

Seabornによるグラフの作成 ~factorplot関数~

グラフを作成する際に、良く使うseabornを紹介します。 seabornは簡単に統計グラフを書くことができる関数を多数提供しています。 ここでは、factorplot関数を使ったグラフ作成を中心に紹介します。 import seaborn as sns df = sns.load_dataset("iris") #…

ゲノムに畳み込みニューラルネットワーク(CNN)を使用し表現型を予測する

やったこと 小麦の遺伝子の情報から表現型を予測するという論文を読んでみました。 DeepGS: Predicting phenotypes from genotypes using Deep Learning という論文です。twitterでいい感じの論文ないかなと思って探してたら、ちょうどいいのを見つけました…

Pandas関数について -ビニング処理(ビン分割)

pandasでビニング処理(ビン分割)を行うにはcut関数、またはqcut関数を使用。 それぞれ、 cut関数は、最小値と最大値から、等間隔に切ってビン分割するのに対して、 qcut関数は、ビンの中の値の数を揃えてビン分割するという違いがある。 cut関数 第一引数x…

Pandas関数について -値の並び替え・削除

前回まとめた関数以外に、よく使う関数の一覧 nissyl.hatenablog.com 値の並び替え sort_values関数 DataFrame内のカラムの値に基づいて、並び順をソートする。 defaultは昇順。降順にする場合は、"ascending = False"にする。 (例) df.sort_values('petal_l…

論文読み - IBD(潰瘍性大腸炎やクローン病の原因について)その2

1回目のやつで、IBDの遺伝的要因について軽く見てみたやつの続きです。 nissyl.hatenablog.com ということで、引き続き自分が読んだ後の思い出す用メモです。 1報目 「Twin study indicates loss of interaction between microbiota and mucosa of patients …

論文読み - IBD(潰瘍性大腸炎やクローン病の原因について)

今回は生命科学系の論文を読んでみました。 参考にしたのは、Epidemiology and risk factors for IBDというレビューです。 とりあえず、 一旦、IBDの全体感を掴みたかったので、この論文を選びました。 以下、自分で思い出す用のメモで書いたものです。 論文…

Pandas関数について -集計する時によく使うもの

前回のNumpyの使い方に引き続き、 nissyl.hatenablog.com 今回はPandas関数で、集計する際によく使う「groupby関数」「pivot_table関数」について整理。 Irisのデータセットを使って、色々触っていきます。 データ準備 [in] import sklearn,seaborn as sns i…

機械学習 ~LightGBMの紹介~

LightGBMとは、2017年にMicrosoftから出された機械学習アルゴリズム。 こちらの論文に詳細は記載されている。 論文中では、LightGBMのことを以下のように紹介してる We call our new GBDT implementation with GOSS and EFB LightGBM.Our experiments on mul…

Numpy関数について -集合関数系

numpyの中のよく使う集合関数について整理。 単にデータ処理するだけでなく、エラーの原因を調べるためにも重宝します。 よく使う集合関数 insersect1d関数 重複しているものだけを取り出したい時。 (例) [in] np.intersect1d([1, 3, 4, 3], [3, 1, 2, 1])…

Numpy関数について -基本操作

この記事では、Pythonを使用してデータ処理をする上で必須なNumpy関数について整理。 集約関数 mean関数 平均を算出する関数。 (例) [in] import numpy as np nobel_lab = np.random.randn(5,4) [out] array([[ 0.06561081, -1.15944786, 0.72381315, 0.22…