人工知能してみる

人工知能の中の人が機械学習とか統計とかAI的なことを書き連ねます

Python

2つの分布が異なるか調べるKolmogorov–Smirnov検定

Kolmogorov–Smirnov検定って簡単にいうと? コルモゴロフ-スミルノフ検定(Kolmogorov–Smirnov test)以下KS検定 は任意の2つの分布が異なるか評価する検定です。 例えば用途として、金融では与信スコアリングモデルがデフォルトと非デフォルトを分離できて…

ROC曲線とAUC

機械学習や統計の評価指標は多々ありますが、その中でも基本になるROC曲線とAUCについて説明します。 TL;DR Q: ROC曲線とは? A: 横軸に偽陽性、縦軸に真陽性をとったグラフです Q: AUCとは? A: ROC曲線の右下側の面積です ROC曲線とAUC ある2値分類問題を…

SVR: サポートベクター回帰を使ってみる

回帰の問題を解く機会があったので非線形な回帰を解けるSVR: サポートベクター回帰を触ったのでメモします。 SVR: サポートベクター回帰とは? サポートベクター回帰はサポートベクターマシンの回帰版で、カーネルトリックを使って回帰式を解くことで非線形…

複数のnumpy1次元ベクトルの平均を得る

機械学習をしているとベクトル演算をする機会は多いと思うのですが慣れていないとハマる(ハマった)のでメモ。 前に書いたfastTextを使って遊んでいたのですが、文書ベクトルとして単語ごとのベクトルを相加平均したものを得ようと思ったら手間取りました。…

PythonでMeCabを使って形態素解析する

こんにちは、Grahamianです。 すっごい今更なんですけど Python を使ったときの分かち書きの仕方を書いておこうと思います。日本語の記事もたくさんあるので困ることは無いと思うんですが備忘録ということで。 前準備 Python 自体は3系推奨です。私は3.6を使…

PyCharmでanacondaの仮想環境を使う

こんにちはGrahamianです。 みなさんはPython書くときに何使ってますか? 私はPyCharm使ってます。 www.jetbrains.comPyCharmはNetBrains社のPython用IDEで見た目もクールですが機能も劣らずクールなイケてるヤツです。 コードは補完されるしコードエラーは…

pandasでiterrowsしようとしてハマった話

お早うございます。grahamianです。 タイトルどおりです。DBからデータを取ってきてpandasのdataframeに入れてrowごとに処理するってことをやろうとしてました。 よくある処理だと思います。 で、最初は何も考えないで for row in df: foo = bar(row['data']…

PyCharmの便利な使い方をまとめておく

PyCharmを最近使っています。 IDEでは便利な機能がたくさんあるのですが、日本語の情報がなかなか見つかりません。 そこで自分が見つけた情報をここにまとめていきたいと思います。 まだまだ、使い始めて日が浅いので情報足りないですけど、段々と追記してい…

gensimでトピックモデルを実装してみる

自然言語処理のライブラリはpythonでは多々ありますが、gensimを今回は使います。 以前もgensimはWord2Vecを使うために使いましたね。 grahamian.hatenablog.com今回はトピックモデルを実装するために使います。 とはいえ、作るだけならコードは3行で済みま…

anacondaのlibraryをPyCharmでimportする

タイトルどおりです。 最近PyCharmを使い初めたのですが、importで詰まったので書いておきます。PyCharmで普通にプロジェクトを作成すると標準のpython環境を使おうとするみたいです。 で、CreateProjectのときにProject Interpreterからanaconda環境のpytho…

PythonでMeCabを使う

自然言語処理では定番となったmecabをpythonで使います。 以前はpython用のmecabがなかったので独自にコンパイルされたものを導入していました。 今はpipで簡単に使えるようになったので、覚書として書いておきます。ちなみに私はanacondaによるpython3系の…

word2vecしてみる

2014年くらいに流行ったツールであるword2vecを使ってみます。 word2vecの詳細は省きますが、簡単に言うと、単語を任意のベクトルに変換するものです。 skip-gramかCountinuous Bag of Wordsモデルに基づいてベクトル化されます。 簡単に言うと、ある単語の…

主成分分析したあとSVMを回してみる

前回に引き続き、主成分分析をしてからSVMを回してみます。 主成分分析とSVMは話したので過去の記事を参照してください。grahamian.hatenablog.comgrahamian.hatenablog.comそれでは早速SVMを回してみましょう。 コードは主成分分析も含めてこんな感じです。…

Scikit-learnでirisを主成分分析してみる

主成分分析(Principal Component Analysis)とはデータの各ベクトルを独立にし次元を下げる手法です。 データを独立にするとは入力ベクトルを直行にさせると考えればOKです。 複数のベクトルの要素を見て独立なベクトルを再構築させます。 次元の低減はベクト…

scikit-learnのSVMで数字を線形分離してみる

先日はanacondaを導入して簡単なプロットをしてみました。 が、anacondaはscikit-learnのような機械学習ライブラリがまとめて入っています。 せっかくなので、簡単な機械学習について手を出してみようと思います。参考にしたのは下記ブログです。 参考という…

Anacondaを入れてSpyderを使う

Pythonをインストールするにいろいろと調べていたのですが、今はAnacondaを使うのが一般的なようです。 Anacondaならデータ分析や機械学習に用いるさまざまなライブラリが一緒に導入できます。 pipで個別に入れるよりも安定して導入できるので、プレーンな状…