u++の備忘録

python

Windowsにpython-mecab導入(2017年11月)

自分用メモmac版はこちら Macにpython-mecab導入(2017年10月) - u++の備忘録 端末 Windows 10 Python環境 Python 3.6.2 | Anaconda インストール方法 pipで辞書などを丸ごと導入できるようにしてくださったものを利用する。qiita.com 事前インストール landi…

『画像認識』(機械学習プロフェッショナルシリーズ)第5章まとめ

某所にて、『画像認識』(機械学習プロフェッショナルシリーズ)の勉強会(輪読形式)があり、第5章「分類」を担当しました。参考書の内容に加え、『パターン認識と機械学習 上』の内容も盛り込み、包括的に「分類」を扱いました。www.kspub.co.jp下記の記事…

【遊戯王デュエルリンクス】修正されたスキル「バランス」で50回戦った初期手札の分布 スクリーンショットからPythonで自動集計

11月6日のアップデートで、スキル「バランス」に一定のランダム性が付与されたそうです。どの程度のランダム性が付与されたかを調べるため、初期手札の分布を集計しました。 使用デッキ モンスター10枚・魔法5枚・罠5枚デッキで、スキルは「バランス」です。…

【Python&遊戯王デュエルリンクス】スクリーンショットから初期手札の「バランス」を自動取得するスクリプト

11月6日のアップデートで、スキル「バランス」に一定のランダム性が付与されたそうです。どの程度のランダム性が付与されたかを調べるため現在、モンスター10枚・魔法5枚・罠5枚デッキで「バランス」を使ってデュエルを始めた際の初期手札のスクリーンショッ…

kmeansのinertiaとは何物か

暇だったのでkmeansのdocumentを読んでいたら、今まで曖昧な理解だった"inertia"という語についてまとまった言及があったので、自分用メモ。2.3. Clustering — scikit-learn 0.19.1 documentation inertiaとは kmeansの最適化において最小化すべき指標で、各…

人工知能(AI)にミス東大2017の結果を予想させてみる

はじめに 昨日、某所で「画像認識」を題材にしたハッカソンに参加しました。秋の到来→学園祭シーズン→学園祭といえばミスコン という思考でアイデアを考えた結果、下記の記事を参考にすれば比較的手軽に実装ができそうだと思い、タイトルのようなテーマで取…

【10月27日Version2対応】Pythonで活性化関数Swishを書く

以下の記事の続きです。 upura.hatenablog.com10月27日にVersion2が公開されていたので、ブログも対応して修正します。Figure4に当たります。 #!/usr/bin/env python3 # -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt beta = […

強化学習Q-learningで、ダチョウ倶楽部の「熱湯風呂」ができるAIを育成してみた

出典:ORICON NewsAlphaGo Zeroで話題になった強化学習の復習として、Q-learningで、ダチョウ倶楽部の「熱湯風呂」ができるAIを育成してみました。 目的 "押すなよ"を与えられた際には押さず(stay)、"絶対に押すなよ"を与えられた際には押す(push)ように育成…

Facebookの時系列解析ライブラリ「Prophet」で日経平均株価の終値を予測

データは、以下の記事と同様に取得しました(2007年〜2017年9月8日)。 upura.hatenablog.com今回は下記の記事に沿って、デフォルト設定で処理してみました。 d.hatena.ne.jp #!/usr/bin/env python3 # -*- coding: utf-8 -*- import pandas as pd from matp…

python-mecab+sklearnを用いて、文章を分かち書きしてTF-IDFでベクトル化する

#!/usr/bin/env python3 # -*- coding: utf-8 -*- import MeCab from sklearn.feature_extraction.text import TfidfVectorizer # Initial settings vectorizer = TfidfVectorizer(use_idf=True, token_pattern=u'(?u)\\b\\w+\\b') # Global variables docs …

Macにpython-mecab導入(2017年10月)

自分用メモWindows版はこちら Windowsにpython-mecab導入(2017年11月) - u++の備忘録 端末 macOS Sierra, version 10.12.6 Python環境 Python 3.6.2 | Anaconda ※下記サイトに沿って構築 qiita.com python-mecab導入 mecab本体のインストール brew install m…

Pythonで活性化関数Swishを書く

※ 10月27日にVersion2が出ていたので、続編書きました。 upura.hatenablog.com追記以上 ーーーGoogle Brainが10月16日に公開した、深層のニューラルネットワークの画像分類・機械翻訳タスクでReLUを上回る性能を示したという活性化関数「Swish」をPythonで描…

「日本人クラス」を作って、Pythonのクラスの使い方を復習

Pythonのクラスの使い方を忘れかけていたので、下記ページを参考に「日本人クラス」を作ってみました。www.sejuku.net #!/usr/bin/env python3 # -*- coding: utf-8 -*- class Japanese(): def __init__(self, name, sex, age): self.name = name self.sex =…

カーネル密度推定による分類方法をPythonで可視化

『画像認識』(機械学習プロフェッショナルシリーズ)*1の第5章pp.143-144に載っていた、カーネル密度推定による分類方法を可視化。 data1(青)は0を中心とした正規分布の乱数、data2(黄)は3を中心とした正規分布の乱数。カーネル密度推定により確率密度…

PythonのリストをExcelで開いても文字化けしないcsv形式で書き出す

encodingで'utf-8-sig'を指定する。BOM(Byte order mark)付きのエンコーダである。 with open('output.csv', 'w', encoding='utf-8-sig') as f: writer = csv.writer(f, lineterminator='\n') writer.writerows(output) # output: 書き出したいリスト(多次…

【遊戯王デュエルリンクス】メテブラオートの初期手札で融合できる確率をPythonで計算 最適なデッキレシピの推定

遊戯王デュエルリンクス*1におけるレベル上げ*2などで「メテブラオート」*3を使っていますが、スキル「バランス」*4がないキャラクターだと、少なからず手札事故で融合できないまま敗北することがあります。今回は、ランダムで配布される初期手札で融合でき…

画像認識におけるKMeansによるBoVW

『画像認識』(機械学習プロフェッショナルシリーズ)*1の第4章pp.92-95に載っていた、KMeansによるBag of Visual Words(BoVW)を実装。 import numpy as np from sklearn.cluster import KMeans ## KMeansによるBoVW def coding(X_ap): bovw = np.zeros((len…

画像データセット「CIFAR-10」からのSIFT特徴量の取得

CIFAR-10とは 以下のブログが詳しい。aidiary.hatenablog.com SIFT特徴量とは 『画像認識』(機械学習プロフェッショナルシリーズ)*1の第2章などを参照のこと。 ライブラリのインストール 以下のライブラリを準備する。 from chainer import datasets impor…

【Python, Gensim】doc2vecで関連記事の見出しを抽出する試み

今回は、過去2回の記事*1*2でも使った日経新聞のツイッター(@nikkei)の投稿文のデータセットを用いて、類似する見出しを抽出しようという話です。とある見出しと類似する見出し、つまり関連記事を取り出す試みになります。 doc2vec この問題に取り組むため、…

『画像認識』における統計的特徴抽出手法の可視化 Pythonでの実装

『画像認識』(機械学習プロフェッショナルシリーズ)の第3章「統計的特徴抽出」に登場した手法について、Pythonで実装しようと思います。www.kspub.co.jp この章で紹介されている手法は、以下の5つです。 主成分分析 白色化 フィッシャー線形判別分析 正準…

matplotlibでラベルの向きを変える

Pythonによる勾配降下法の実装 - u++の備忘録の記事で、以下のような図を作成した。y軸のラベルは横を向いている。これで全く問題ないのだが、ラベルの向きを変えたい場合には、次のように"rotation"のオプションを指定すれば良い。 import numpy as np impo…

Pythonによる勾配降下法の実装

勾配降下法 目的関数の1次微分を求めて、勾配の逆方向にパラメータを逐次的に更新していく手法。 数式表現 実装 条件 目的関数はに設定。明らかにで最小となる。 コード import numpy as np import matplotlib.pyplot as plt def J(x): return x*(x-4)+5 def…

PK戦の先行有利は新制度「ABBAルール」で是正されるかモンテカルロシミュレーションで検証してみた

先行有利のPK戦 サッカーのトーナメント制の大会で同点となった場合など、勝敗をつけるために行われるPK戦。当然のように交互にボールを蹴り合っていた制度の変更が、欧州サッカー連盟によって現在議論されているそうです。www.soccer-king.jpその理由は、現…

PyInstallerでPythonファイルをexe化

先駆者のページから必要部分を抽出。 retrofocus28.blogspot.jp インストール方法 > pip install pyinstaller 一つのファイルに実行時にコマンドプロンプトを表示させない形式でexe化 > pyinstaller hoge.py --onefile --noconsole 公式マニュアル PyInstall…

Nan(不定値)で条件分岐する

if( val != val ): #valがNanだったときの処理を書く PythonではNanとNanを比較するとFalseが返ってくるらしい。【参考】 linux.oboe-gaki.com

ネイピア数への収束を可視化

ネイピア数(ネイピアすう、英: Napier's constant)は数学定数の一つであり、自然対数の底である。 ネイピア数 - Wikipedia このネイピア数は、収束数列により以下のように定義される。 この収束の様子を可視化してみた。 import matplotlib.pyplot as plt …

大相撲の巴戦は最初に戦う2人が有利

9月場所で千秋楽前に豪栄道が優勝を決めました。純粋に嬉しいです。 そういえば先場所の千秋楽、巴戦が発生しそうな状況でした。巴戦は一見平等に見えて、実力が同等の場合、実は最初に戦う2人が有利です。mathtrain.jp 確率的に計算すると、最初に戦う2人が…

PandasでWebスクレイピング

Webページの表からデータを取得する方法。pythonのpandasで簡単にできた。 qiita.com