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

主に機械学習に関する覚書や情報の整理。競プロ水色→Kaggle Master→?

機械学習

AIメロディー生成コンテスト 弁財天第二幕 参加記録

2023年10月28日、「弁財天」というAIメロディー生成コンテストにチームメンバーのCapchiiと一緒に出場した。 コンテストは、運営から伴奏のデータが提供され、それに対して各チームは制限時間内に自身のメロディー生成システムを実行し、生成されたメロディ…

【Streamlitよりいいかも?】機械学習系のデモアプリ作成に最適!Gradio解説

機械学習系のデモアプリを作成することがしばしばありStreamlitを使用していたが、パラメーターなどをいじるたびに処理が最初から走るなどといった挙動に悩まされていた。 同僚がGradioというのを使っていたのでサーベイがてらメモしていたらブログが出来上…

クリックレートやコンバージョンレートといった二項母集団の母比率の信頼区間 精密法のPython実装

前提 データ 求めたいもの 実装 確認 前提 本記事ではクリックレート(CTR)やコンバージョンレート(CVR)といった二項母集団の母比率について信頼区間を計算するPython実装を与える。データ数が少ない状況においてはCTRやCVRだけではなく、その不確実性も考慮…

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 超概要…

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

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

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

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

【具体例つき】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という手…

時系列データでVariational AutoEncoder keras

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

ハンズオンUMAP

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

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. 分析結果 まとめ

変数選択(Feature Selection)の実装と改善の確認

はじめに 実験設定 目的 用いるデータ 用いる変数選択手法 用いる判別器 評価指標 行わないこと データを少し見てみる すべての特徴を用いた場合 Filter Method 目視により選択 sklearn.feature_selection.SelectKBestによる選択 Wrapper Method sklearn.fea…

論文読み Unsupervised Anomaly Detection with Generative Adversarial Networks to Guide Marker Discovery

読んだので自分の整理のためにまとめます。 [1703.05921] Unsupervised Anomaly Detection with Generative Adversarial Networks to Guide Marker Discovery 導入 扱う問題 問題意識 メインアイデア 理論 大筋 定式化・アルゴリズム GAN 新しい画像を潜在空…

ROC曲線の書き方を整理する。

はじめに 前提知識 一瞬でわかりたい人向け ROC曲線を手で書くには? メインアイデア 具体例 別の具体例1 別の具体例2 注意すべき例 まとめ 追記