kumilog.net

データ分析やプログラミングの話などを書いています。

Pythonの知っておくと良い細かい処理速度の違い8個

はじめに 標準入力 input と sys.stdin.readline ソート sort と sorted ソートの key ループ for と while リスト リストの初期化 二次元配列の場合 リストの値参照 リストへの値追加 それぞれの処理速度 まとめ はじめに 最近、PythonでAtCoderなどの競技…

ダイクストラ法

はじめに ダイクストラ法 計算量 コード 実行例 例題 SoundHound Inc. Programming Contest 2018 D - Saving Snuuk 問題 解法 ABC 035 D - トレジャーハント 問題 解法 はじめに 最短経路を求めるアルゴリズムであるダイクストラ法をPythonで実装して、例題…

Union Find

はじめに Union Find Pythonで実装 経路圧縮 最終的なコード 例題 ATC 001 B - Union Find 問題 解法 ABC 049 D - 連結 / Connectivity 問題 解法 はじめに 素集合データ構造を表すUnion FindアルゴリズムをPythonで実装して、例題を問いてみます。 追記 例…

尺取り法

Pythonのコードを交えて、尺取り法について説明します。 はじめに 尺取り法 ABC 032 C - 列 問題 解法 コード 参考 その他の例題 ARC 022 B - 細長いお菓子 問題 解法 コード ABC 098 D - Xor Sum 2 問題 解法 コード はじめに 先日、初めてAtCoderに参加*1…

自己紹介用のCLIアプリを作った

流行にのって?Nodeで名刺代わりになるCLIアプリを作ってみました。 はじめに NodeでCLIアプリ開発 npmパッケージとして登録 まとめ はじめに 先日、Qiitaで以下の記事を見かけました。 qiita.com こちらのSindre Sorhus氏のTweetが流行発信元のようで、node…

MNISTのバイナリを画像に変換する

はじめに 画像系の入門データとして、手書き文字のMNISTは最もよく使われるデータの1つかと思います。 KerasやChainerなど主要なフレームワークには、ダウンロードして配列に格納するといった処理を行う関数を用意しているので、簡単に扱うことができます。 …

SARIMAで時系列データの分析(PV数の予測)

統計モデルでの時系列データの分析手法であるSARIMAを使って、PV数の予測分析を行います。 はじめに データの準備 データの確認 PV数 PV / エントリ数 相関関係 コレログラム 成分分解 定常性の確認 時系列データの前処理 差分 季節調整 差分+季節調整 時系…

ベイズ最適化でパラメータチューニングを行う

Scikit-Optimizeを使ってベイズ最適化で機械学習のハイパーパラメータの探索を行いました。 はじめに グリッドサーチ 手書き文字での実験 ベイズ最適化 参考 Pythonでベイズ最適化 探索範囲 ブラックボックス関数 ガウス過程での最適化 結果 まとめ はじめに…

ワンライナーで自分がSlackにアップロードしたファイルのダウンロードと削除を行う

シェルを使ってSlackにアップロードしたファイルのダウンロードしたり、削除したりします。ワンライナーとタイトルに書いたものの、若干無理やりです。また、ダウンロードと削除はまとめて1行ではなく、別々です。 準備 トークン作成 jqのインストール ファ…

PythonとSheets API v4でGoogleスプレッドシートを読み書きする

PythonからSheets APIを使ってGoogleスプレッドシートを操作してみました。Pythonのクイックスタートの内容を中心に紹介します。 Google Sheets API を使うための準備 Google API コンソールでSheets APIを有効化 認証情報を作成 Pythonパッケージのインスト…

KerasのGeneratorにSequenceをつかう

Kerasのmodel.fit_generator()にSequenceをつかってみます。 はじめに Sequenceをつくる ChainerのDatasetMixinとの違い Sequenceをつかう はじめに Kerasのfit_generator()の引数にはGeneratorかSequenceをつかうことができます。 今回はSequenceを使ってみ…

統計検定2級に合格したときの勉強方法

統計検定2級に合格しました。そのときの勉強方法です。 はじめに 勉強方法 公式教科書 統計WEB 過去問 試験 おわりに はじめに 勉強前の状態ですが、ある程度の統計の知識はある状態だったと思います。公式の教科書をパラパラめくって、細かいところは覚えて…

簡単・便利!画像を扱うコマンド

サーバ上の画像を扱うとき、毎回ローカルにダウンロードするのは面倒ですよね。そこで、コマンドで扱う方法をいくつか紹介します。 画像を表示する サイズと拡張子を確認する サイズを変更する 画像を表示する iTerm2用のコマンドですが、imgcatが便利です。…

OpenAI Gymで強化学習

OpenAI Gymは、非営利団体であるOpenAIが提供している強化学習用のツールキットです。以下のようなブロック崩しの他いくつかの環境(ゲーム)が用意されています。OpenAI Gymをつかって強化学習に触れてみたいと思います。 強化学習 強化学習とは Q学習 行動…

VideoGANの論文を読んだ

GANの一種であり、動画を生成するVideoGANの論文を読みました。 [1609.02612] Generating Videos with Scene Dynamics 概要 動画生成モデル Generator Network Foreground Stream Background Stream ForegroundとBackgroundの結合 Discriminator Network 学…

スマホアプリで学習状況を監視するHyperdash入門

WebアプリやiOS/Androidアプリで機械学習の学習状況を見ることができるHyperdashの使い方をまとめてみます。 インストールとユーザ登録 ログの表示 パラメータやスコアをトラッキング Chainer Keras XGBoost まとめ インストールとユーザ登録 はじめにインス…

KerasのGeneratorを自作する

Keras Advent Calendar 2017 の 25日目 の記事です。 Kerasでモデルを学習するmodel.fit_generator()でつかうgeneratorを自作してみます。なお、使用したKerasのバージョンは2.1.2です。 はじめに Generatorをつくる Generatorをつかう おわりに

NumPyでの画像のData Augmentationまとめ

Python Advent Calendar 2017 の 18日目 の記事です。 画像のData Augmentationの手法をNumpy(とSciPy)で実装し、まとめてみました。 使うデータ Data Augmentation Horizontal Flip Vertical Flip Random Crop Scale Augmentation Random Rotation Cutout R…

ChainerでFineTuning その2

Chainer Advent Calendar 2017 の 11日目 の記事です*1。 Caffeモデルを利用したFineTuningを試したいと思います。ChainerでのFineTuningは、ChainerのLink関数であるVGG16Layers()なども用いることもできます。VGG16Layers()を用いる方法については以下にま…

PyTorchとCaffe2でONNXを使ってみる

Deep Learning フレームワークざっくり紹介 Advent Calendar 2017 の 9日目 の記事です。 PyTorchとCaffe2で、モデル表現の標準フォーマットであるONNX (Open Neural Network Exchange)を使ってみます。 環境 PyTorch インストール モデル定義 Caffe2 ONNX …

MacOSでChainerを使うときのWarningに対処する

MacOSでデフォルトのNumpyとChainerを使うと、精度が落ちる問題があり、Warningが発生します。OpenBLAS対応のNumpyを使うことで対処します。 OpenBLASのインストール OpenBLAS対応のNumPyを再インストール NumPyのアンインストール NumPyをソースからインス…

ResNetの論文を読んだ

ちょくちょくResNetを用いることがあるのですが、論文を読んだことがなかったので、読んでみました。 [1512.03385] Deep Residual Learning for Image Recognition 概要 ResNetが解決する問題 Residual Learning ResNetブロック ネットワークアーキテクチャ …

Chainerで動画を扱う

Chainerにおいて画像を扱う場合、ImageDatasetというクラスが用意されており、以下のように簡単に扱うことができます。 from chainer.datasets import ImageDataset image_files = ['1.png', '2.png'] train = ImageDataset(paths=image_files) Datasetにつ…

ChainerでFineTuning その1

機械学習がうまくいくケースにおいて、教師あり学習の次に、転移学習が成功のカギになってくると言われているそうです。転移学習は、あるドメインで学習させたモデルを別のドメインに適用させる学習のことです。少ないデータでもうまく学習ができたりします…

ImageNetの画像をダウンロードする

ImageNetは大規模な画像データベースで、現在2万クラス1,400万枚を超える画像があります。クラスにはWordNetの単語を用いています。CNNがブレークしたILSVRCというコンペで用いられたりと、ベンチマークとして有名なデータセットです。 画像のダウンロードは…

Chainerでデータセットを作る

Chainerでデータセットを作る方法についていくつか紹介したいと思います。なお、執筆時点のversionは3.0.0です。 シンプルなデータセット 画像を扱うデータセット ImageDataset LabeledImageDataset データセットに処理を加える 独自のデータセット データセ…

Python 3でファイル読み込み時のUnicodeDecodeErrorを回避する

Pythonでファイルを読み込むときは以下のような処理でいけますが... with open('file/to/path', 'r') as f: for line in f: line = line.strip() # つづきの処理 読み込んでいる途中で、utf-8ではない文字が含まれていると、UnicodeDecodeErrorが発生するこ…

ゆるふわグラフをmatplotlibで描く

pythonでグラフといえば、matplotlibですが、ちょっといけてないので、 きれいなグラフを描くには、seabornを使ったりしてるかと思います。 seabornはきれいなグラフを簡単に描けるのですが、勉強会のプレゼン資料なんかに おすすめで、手書き風のグラフを描…

Python+OpenCVで動画を扱う

Ubuntu 16.04にOpenCVとFFmepgをインストールした環境を用いました。詳細は以下の記事を参照してください。 xkumiyu.hatenablog.com

Ubuntu16.04にFFmpegとOpenCV3をインストールする

Pythonで動画を扱うためにFFmpegとOpenCVをインストールします。環境はUbuntu16.04です。 FFmpegのインストール 動作確認 OpenCVのインストール 準備 設定ファイル作成(Configuring) ビルド Pyhonで確認 インストールのポイント