人工知能してみる

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

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: サポートベクター回帰とは? サポートベクター回帰はサポートベクターマシンの回帰版で、カーネルトリックを使って回帰式を解くことで非線形…

R言語を使ってcsvデータからARIMAモデルで時系列分析をする

こんにちはGrahamianです。 最近時系列データを扱う機会があって勉強したので基本ですが一連の流れを紹介します。Rに慣れていないので細かいところで引っかかって時間を使ってしまったので実際に分析をするシーンを考えてcsvデータをインポートして使う状態…

文字列類似度評価 レーベンシュタイン距離 / ジャロ・ウィンクラー距離

こんにちは。Grahamianです。 文字列の類似度を評価するアルゴリズムであるレーベンシュタイン距離とジャロ・ウィンクラー距離です。 レーベンシュタイン距離 レーベンシュタイン距離は2つの文字列の間の編集距離を示します。編集とは「挿入」と「削除」(と…

Redshiftで条件ごとに集計する

こんにちは。Grahamianです ↓みたいなデータのときに category | number 1 | 3 1 | 4 1 | 10 2 | 5 2 | 6 2 | 1 3 | 2 3 | 11 categoryごとにnumberを集計したいときがあると思います。あるはずです。私はありました。 普通にやるとcategoryをgroup byしてsu…

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

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

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

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

Facebook社の自然言語処理ライブラリfastTextを使ってみる

こんには、Grahamianです。 今日は Facebook が公開している自然言語処理ライブラリである fastText を使ってみます。 fastText はこちら! github.com インストールは readme に書いてあるとおりなので省略するとして。fastText は何ができるかというとCPU…

PyCharmでanacondaの仮想環境を使う

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

Go言語でMeCabを使う

こんにちは。 機械学習系はPythonにライブラリが偏っていることもあり圧倒的にPython一択ではあるのですが処理が遅いのが問題です。 Cythonって手もありますがビジネスで使うってなるとRubyとかGoで使えた方がいいよなーと思ってます。 そこでGoの勉強も兼ね…

メルカリがKaggleでコンペ始めたみたい

こんにちはGrahamianです。昨日からメルカリがKaggleで機械学習コンペティションを始めたみたいです。 mercan.mercari.comテーマ課題は Mercari SuggestPrice ということでメルカリのプライシング(価格査定)です。 データを見ると説明文、タグ、ブランド、…

SCAN: 視覚概念による抽象的な階層構成の学習

こんにちは、Grahamianです。 先日発表されたDeep Mindの論文がなかなかに衝撃的なのでザックリと紹介を書いてみます。 深く読めていないので誤りがあったら指摘願います。SCAN: Learning Abstract Hierarchical Compositional Visual Concepts deepmind.com…

予測精度はKPI足り得るのか?

こんにちはGrahamianです。 今日は予測精度について話します。プロダクト開発においてKPIの設計は非常に重要です。 最近のWEBプロダクト開発ではKPI設計が成否を分けているといっても過言ではありません。 しかし機械学習を用いるとKPIの設定が非常に難しく…

なぜ機械学習を使ったプロジェクトは失敗するのか

おはようございます。Grahamianです。 世間では猫も杓子も機械学習ですね。 あちこちで機械学習を使ったhogehogeが出ていますが成果はパッとしない印象を受けます。 それは何故なのかを考えたので書いてみます。 機械学習は得意不得意がある 機械学習はなん…

Azure Machine Learningを使ってみたら思ったよりよかった

Grahamianです。 タイトルどおりです。 数年前からクラウド機械学習サービスがでてきていましたが、そのときは全然興味ありませんでした。 データサイエンスって前処理が面倒なんで機械学習だけクラウドで出来てもなーって感じ。 とか思っていたんですが、つ…

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

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

自然言語処理技術の開発は検索方法を変えるのか?

こんにちは。Grahamianです。 今日は自然言語処理と検索方法について考えてみます。 www.itmedia.co.jpchat botなんかが最近は話題になったりして人間vs機械の会話が注目されていますね。 いろんなサービスでchat botを使われるようになっています。 実際に…

ロボアドバイザーってどうよ?

おはようございます。 Grahamianです。今日のニュースは↓ www.fina-sol.comここ2, 3年で金融業界に一気に人工知能技術、というか機械学習プロダクトが一気に増えました。 いわゆるFintechってやつですね。金融は数字データが多いので機械学習と親和性が高い…

「AIによる高度な評価」という便利で意味のない言葉

www.fashionsnap.com某D○NAみたいなこともありましたし、こういった考え方をもったサイトが生まれるのはとても良いことだと思います。思いますが、記事中にこんな記述があります。「データとAIによりコンテンツを客観的に評価し、雑誌編集のノウハウを知る編…

人工知能が記事を書く時代になりました

jp.techcrunch.comつまるところ、企業の出す決算短信など適時開示情報をもとに各社の要約文を出力するわけですね。実際に出力されている文章をみると割りとルールベースなのかな?って感じです。 たとえば数値について言及しているあたりは企業の過去データ…

機械学習で理由も説明させる

こんにちはGrahamianです。こんなニュースがありました。 www.gizmodo.jp要約するとdeep learningの結果に対して結果の理由を添えてくれる、というもの。単層パーセプトロンのようなシンプルなものはまだ理由が考えやすかった。 これはインプットに直接重み…

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

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

バンディットアルゴリズム ε-Greedyモデル

前回バンディットアルゴリズムの全体について見てみました。 grahamian.hatenablog.com今回はバンディットアルゴリズムの基本であるε-Greedyモデルを見ていきます。前回、バンディットアルゴリズムでは探索と活用が重要だと言いました。 ε-Greedyモデルでは0…

バンディットアルゴリズムって何?

なんかバンディットアルゴリズムというものがすごいらしいです。 勉強したことを少し書き溜めてみます。バンディットアルゴリズムとは? 目の前にスロットが何台かあるとしましょおう。 それぞれのスロットには当たりの確率がそれぞれ設定されています。 も…

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モデルに基づいてベクトル化されます。 簡単に言うと、ある単語の…

KH Coderのオプション「Ward・郡平均・最短距離法」って?

前回はKH Coderを使って簡単な自然言語解析をしてみました。 grahamian.hatenablog.com今回はKH CoderのオプションにあるWard・郡平均・最短距離法について書いてみます。 Ward・郡平均・最短距離法ってそもそも何? そもそもWard・郡平均・最短距離法とは階…