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

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

自動化でいちかジャンケン2020を攻略

summary これ作った。 いちかジャンケンとは これ。KONAMIのリズムゲームのイベント。本田圭佑より勝てる。 p.eagate.573.jp じゃんけんするのめんどくさすぎ問題 このイベントでは一日三回、特定の時間にブラウザ上でじゃんけんすることが必要。 2020/06/29…

蟻本Python回答集 中級前編 (P127~P187)

はじめに AtCoder青を目指しつつデータ構造など勉強するため、プログラミングコンテストチャレンジブック [第2版] ■ (通称、蟻本)を解くことした。 せっかくなのでPythonでの解答をここに記録する。 Pythonで解答してる人のブログを漁っても初級編の途中(DP…

蟻本Python回答集 初級編 (~P126)

はじめに とうとうAtCoder水色になれた(過去問精進と夜活コンテストのおかげ)。さらなる高みを目指すべく、プログラミングコンテストチャレンジブック [第2版] (通称、蟻本)を解くことした。 せっかくなのでPythonでの解答をここに記録する。 Pythonで解答し…

Confident Learningは誤った教師から学習するか? ~ tf-idfのデータセットでノイズ生成から評価まで ~

概要 現実の判別問題において教師が完璧であることは珍しい。ラベリング作業において、知識不足や勘違いなどで引き起こされるヒューマンエラーはデータセットを汚染する。 このような間違った教師のことを、noisy label (corrupted label や polluted label…

Confident Learning -そのラベルは正しいか?-

これは何? ICML2020に投稿された Confident Learning: Estimating Uncertainty in Dataset Labels という論文が非常に面白かったので、その論文まとめを公開する。 論文 [1911.00068] Confident Learning: Estimating Uncertainty in Dataset Labels 超概要…

らくらくp進全探索 コピペで使えるPython実装

何をしたか? 連続するp進数を次々返してくれるiteratorを実装しました(といっても標準ライブラリにラップしただけ)。 例えば、3桁の3進数だったら000, 001, 002, 010, 012 ..., 222 というものを次々に返してくれます。 実際には桁ごとにリストの1要素を構…

降順リストに対するbisectの実装 list.sort(reverse=True)に対する配列二分法

はじめに Pythonにおいて、降順リスト向けの配列二分法アルゴリズムを実装しました。 使用するメリット コピペで標準ライブラリに準拠した動作をします。 標準ライブラリと異なり、降順リストを扱います。 昇順リストに変換し直す計算量と、昇順のidxを降順…

めぐる式二分探索 コピペで使えるPython実装

はじめに めぐる式二分探索のメリットと参考文献 コピペ用 例題 はじめに AtCoderで二分探索を実装するときバグらせないように考えると結構時間かかりませんか?自分はかかります。 競技プログラミング界隈ではめぐる式二分探索という二分探索の書き方(流派…

螺旋本を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. "" →自分でやるし…