学習する天然ニューラルネット

主に機械学習に関する覚書や情報の整理

螺旋本をPythonで解く Part4

はじめに 17章 動的計画法 P412 DPL_1_A: Coin Changing Problem P416 DPL_1_B: 0-1 Knapsack Problem P421 DPL_1_D: Longest Increasing Subsequence P425 DPL_3_A: Largest Square P428 DPL_3_B: Largest Rectangle 18章 整数論 P436 ALDS_1_C: Prime Numb…

螺旋本をPythonで解く Part3

はじめに 14章 高度なデータ構造 P318 DSL_1_A: Disjoint Set: Union Find Tree P324 DSL_2_C: Range Search (kD Tree) 15章 高度なグラフアルゴリズム P336 GRL_1_C: All Pairs Shortest Path P342 GRL_4_B: Topological Sort P348 GRL_3_A: Articulation P…

螺旋本をPythonで解く Part2

はじめに 8章 木 P188 ALDS1_7_A: Rooted Trees P193 ALDS1_7_B: Binary Tree P198 ALDS1_7_C: Tree Walk P203 ALDS1_7_D: Reconstruction of the Tree 9章 二分探索木 P209 ALDS1_8_A: Binary Search Tree 1 P214 ALDS1_8_B: Binary Search Tree 2 P217 ALD…

螺旋本をPythonで解く Part1

はじめに 2章 アルゴリズムと計算量 P46 ALDS1_1_D: Maximum Profit 3章 初等的整列 4章 データ構造 P82 ALDS1_3_A: Stack P87 ALDS1_3_B: Queue P95 ALDS1_3_C: Doubly Linked List P114 ALDS1_3_D: Areas on the Cross-Section Diagram 5章 探索 P119 ALDS…

中心極限定理による分布収束のアニメーション nを増やすと標本平均はどうばらつくか

モチベーション 中心極限定理は一言で言うと、「平均する対象を増やすと、その標本平均は正規分布に従うようになる」という定理である。これの解釈はあとで与える。 この定理は直感的にはわかりにくく誤用する人も多いため、twitterでhotなトピックになった…

特徴量重要度にバイアスが生じる状況ご存知ですか?

なぜこの記事を書いたのか? 決定木をベースにしたアルゴリズムのほとんどに特徴量重要度という指標が存在する。データに対する知識が少ない場合はこの指標を見て特徴量に対する洞察深めることができる。KaggleではEDAのときにとりあえず重要度を見てみるな…

AI・機械学習ハンズオン 〜実践Kaggle 初級編〜に参加しました

はじめに 今回はただの日記です。 AI・機械学習ハンズオン 〜実践Kaggle 初級編〜に参加したので、感想を書く。 これから行く人が知りたいだろう情報も書くように心がける。 はじめに 率直な感想 対象者は? どんなことをやったのか データと環境 データのED…

新曲をプレイするとスコアはいくつ? 〜最大値を利用したスコアの分布推定〜

概要 本記事では音楽ゲーム(以下音ゲ)において、曲をプレイすると得られるスコアを確率変数として、その分布を推定することを試みた。 音ゲのスコアは慣習的に最大値のみが保存されるような仕組みになっている。 そのため、曲をプレイすると得られるスコアは…

PriorityQueue Classを作る [Pythonで競プロ]

この問題を解くのにpriority queueを使う方法がある。 atcoder.jp Pythonでpriority queueを実装するためには2つ方法があるがどちらも欠点がある。 heapqを用いた方法 こちらを用いて実装する方が多いと思う。でもめちゃくちゃ使いづらくないですか? これ…

逆パームレストを自作した

はじめに 薄すぎるMagic Keyboard 底上げ板を自作 サイズを決定する ものを購入 作成 逆パームレスト はじめに たまには日記のようなことを書いていこうと思います。 最近キーボードの配列をJISからUSに変更しました。 ためしに3日間使ってみようという感じ…

【具体例つき】scikit-learnを改変しよう ~改変版のinstall方法と改変に必要な知識のリンク集~

はじめに この記事を読むことで、scikit-learnの中身のコードに改変を加えることができるようになることを期待している。改変に必要な知識も学習できるようリンクを用意してある。そして改変を加えたコードをpipで管理する方法も示した。 最後には具体例とし…

読んだ本のレビュー データサイエンス編

この記事は? レビュー パターン認識と機械学習 上 Pythonではじめる機械学習 ゼロから作るDeepLearning scikit-learnとTensorFlowによる実践機械学習 直感DeepLearning 詳解ディープラーニング TensorFlow・Kerasによる時系列データ処理 Pythonデータサイエ…

RNNを用いた正規分布の回帰 keras実装

概要 時系列の1時刻後の分布を推定した パラメーターが時間に依存する正規分布を仮定した ニューラルネットが正規分布のパラメーターを学習できるように適切な損失関数を導入した 概要 問題意識 データと今回の目的 データ 目的 仮定 モデル 損失関数 結果 …

特徴量選択の今と新展開

特徴量選択とは 特徴量選択の難しさ 特徴量選択の手法の大別 教師ありの特徴量選択 filter method 単変量とクラスラベルの関連性を上げる 関係性を上げて冗長性を下げる 関係性を上げて多様性を上げる wrapper method Forward SelectionとBackward Eliminati…

QRNN ニューラルネットを用いた分位点回帰

概要 条件付き分布の分位点を推定するNeural Networkを紹介する そのアイデアは既存のNeuralNetに対して損失関数を変えるというシンプルなもの 人工データを用いてちゃんと推定できていそうか確認した 目次 概要 目次 分布推定の重要性 点推定の問題 点推定…

ランダムフォレストと検定を用いた特徴量選択手法 Boruta

特徴量選択(Feature Selection, 変数選択とも)はデータサイエンスにおいて非常に重要である。 Kaggle等のコンペティションではひたすら判別の精度を重要視するが、実務上どうしてそのような判別をしたのかという理由のほうが大事である. このBorutaという手…

pickleより楽にpythonオブジェクトを保存する方法

この記事で言いたいこと import pickleしてwith openをいちいち書くのめんどくさくない?。pandas.to_pickleやpandas.read_pickleを使えば楽。DataFrame以外のものも保存できる。 この記事で言いたいこと はじめに データの用意 pickleをimportしてwith open…

時系列データで予測区間付き回帰を行う keras

概要 時系列のデータについて、1時刻先を推定する回帰問題を扱った。 点推定ではなく正規分布を仮定した分布を推定した。 2σ区間を予測区間とした。 電力使用量のデータを用いて実験した。 概要 問題意識 アイデアの概要 データの説明 モデルの説明 結果 ま…

脳波を可視化してみた

概要 脳波を色を使って可視化してみた。 脳波を採取するのには、Mindwaveを用いた amzn.asia 可視化には、Nanoleaf Auroraを用いた amzn.asia 具体的には行動によって変わる時系列としての脳波を、光の系列で表現した。 概要 脳波と表現の説明 脳波とは 結果…

Hyper+xonshで超モダンな環境づくり

はじめに ばんくしさんをフォローしたらすっかりxonshに洗脳された。 また、巷でうわさのHyperなるターミナルアプリを試してみたら使いやすかったので、組み合わせて使ったら最強では?と安直な発想で記事を書きはじめた。 適当に操作してみたのがこちら。 …

時系列データでVariational AutoEncoder keras

はじめに 前回の記事で時系列入力に対するオートエンコーダーを組んだ。 aotamasaki.hatenablog.com 今回は潜在変数を正規分布に押し込むというVariational AutoEncoderを組んでみた。CNNとVAEを組み合わせる記事は割と見つかるのに、RNNとなったとたん見つ…

時系列データを使ってオートエンコーダー keras

はじめに 時系列でオートエンコーダーを組む練習。ネットで漁っても見当たらなくて(kerasの日本語記事)、kerasのblogでも放置されていた。 Building Autoencoders in Keras ""We won't be demonstrating that one on any specific dataset. "" →自分でやるし…

メモリに乗り切れないデータをkerasで学習する

はじめに 何を使うか 方法1 方法2 両者の違い(私感) やることの概要 データの説明 モデルの構築(飛ばしてOK) HDDからバッチを読み出す 訓練 結果 まとめ 追記 はじめに こんにちは。何が起きたかから言うと、DeepLearningしようとしたらデータが270GB近くあ…

Google流 資料作成術を読んで

ここで書くことは? 日本実業出版社から出版されている、"Google流 資料作成術"を読んだので、自分が気をつけておく点をまとめておく。 ここで書くことは? コンテキスト(文脈,背景)を理解する 心持ち 資料を作り始めるまえに 表現を選ぶ 不必要な要素を取り…

またまた、LightGBMのインストールでエラーが出た

事件の発生 LightBGMというライブラリを公式の手順に従ってインストールしようとしたらエラーメッセージが突如現れた。 github.com これのmacOS Apple Clang(9.0 or higher)に従ってインストを行ったらエラーが出た。 どんなエラーがでたか インストレイショ…

ハンズオンUMAP

はじめに なぜ、あとからサンプルを布置できると嬉しいのか? ドキュメントにそって インストール データの概要 訓練とテストに分割 訓練データで空間を学習 この潜在空間で学習 テストデータの潜在空間への布置 テストデータへの汎化性能 まとめ はじめに U…

LightGBMのインストールのエラーに戸惑った話

事件の発生 LightBGMというライブラリを公式の手順に従ってインストールしようとしたらエラーメッセージが突如現れた。 github.com またインストールするときにスムーズに行くように記録を残しておく。 環境はmacOS Sierra 10.12.6 どんなエラーが出たか $ c…

Jupyter notebookで変数一覧を常に出す方法

はじめに 変数一覧を出す方法 おわりに はじめに RStudioやMATLABを使ったことのある方ならわかると思うが、今扱っている変数を一望する機能がある。 RStudioならばこんな感じ。 RStudioならGlobal Environmentと書いてあり、MATLABならばWorkspaceと書いて…

PythonでForward Selection (mlxtend)

背景 Sequential Feature Selector まず、forward selectionを行ってみる。 sequential feature algorithms (SFAs) 1. Sequential Forward Selection (SFS) 2. Sequential Backward Selection (SBS) 3. Sequential Forward Floating Selection (SFFS) 4. Seq…

imbalanced-learnを実際に使った分析例 使わない場合と比較

はじめに データの説明 分析の流れ 分析 1. どういう判別器を用いたら良いか。 2. 変数選択をする。 3. imblearnでオーバーサンプリングとアンダーサンプリングを行う。 4. インバランスを考慮しなかった場合と性能を比較する。 5. 分析結果 まとめ