IT系フリーランスの日記

大まかにIT系と呼ばれる仕事を自営業として営んでいる者の日記です

渋沢栄吉の名言

政府万能主義で、何事も政府に依頼せんと欲するは、
国民一般の元気なき表徴であって、
腑甲斐なき至りといわねばならない。

【「渋沢栄一訓言集」・立志と修養】

今の言葉にすると・・・

政府は万能であると考え、何事も政府に頼ろうとすることは、
国民が元気がないということの表れで、情けないったらない。

一般国民は、普段政治のことばかり考えている暇はない。
各々自分の生活がある。
だから政治家や政府または役人に国の運営を任せているが、本来の主権者は国民である。

今の社会では、何か問題があるとすぐに政府や政治家、役人を避難して無能であるとか、
だらしないといって責め立てる人達が少なからずいる。

だが最低限、政治や経済に関心を持ち、政治にも経済にも、その人のおかれた環境や立場の許す範囲で精力的に関わっていくことも大事だと思う。

今の社会では、なにか社会全体の危機が訪れると特定の集団、例えばそれが「役人」だったり、「政治家」だったり「生活保護受給者」だったりといった人達にその矛先が向けられ、そのような人達さえ排除すれば問題が解決すると短絡的に思われがちである。

だが社会というものは複雑なもので、複雑な問題に簡単な答えはない。
みながそれぞれ、各人の働きをこなしそれを認め合った上で、時間を掛けて答えを模索していくほかない。

不条理であろうと、面倒であろうと、それが世の中だ。

データマイニングの学習日記

興味のない方には退屈な記事かも知れませんが、データマイニングをする上で基礎になるコサイン類似度についてもう少しかみ砕いて説明しようと思います(復習を兼ねてのことです)

まず断っておきますが、私は統計学については大学の講義で通り一遍のぬるい勉強しかしたことがありませんし、中退した私立の大学での専攻は機械工学で統計に関する専門性は、少なくとも学部では身につけておりません。

ここに書くことは私が、今、自営業主となって新しいことを勉強する上で得た知識を反芻し、その知識の定着をはかることと、もう一つは、もしこの学習ノートが他の方が勉強する上での励みや参考に少しでもなればと思っての内容です。

まず、データマイニングを行う際、様々なデータをベクトルで表現することがしばしば行われます。
というのも、コンピュータが扱うことが出来るのはデータそのものというよりも数値であり、コンピューターは本質的に数値計算を行うものだからです。

例えば、前回の学習日記で例に取り上げた、いくつかの気象条件が示された場合、ある人(特定の個人とします)が登山に行くかどうかを予測したい。というニーズがあったとします。

人間であれば、予測する際に色々と条件に関してあーだこーだと考えて、最終的には勘で結論を出しますが、コンピューターは数値計算によってそれを行います。

数値計算をする前提として、条件やその結果を数値の列に置き換えなければなりません。

気象条件として、天気を「晴れ、曇り、雨」の三つに分けたのであれば、それぞれに1,2,3という数字を割り当てます。

前々回に述べたように、晴れ、曇り、雨は足したり引いたり出来ず、増しては掛けたり割ったりも出来ません。ただその順序だけに意味があるか、もしくは順序にすら意味がないか、のどちらかです。

この場合、晴れ、曇り、雨に順序があるとするかどうかは厳密は答えはありませんが、ここでは順序に意味がある順序尺度として扱いましょう。
気温の「暑い、暖かい、涼しい」も順序尺度として扱います。
湿度の「高い、普通、低い」も同じです。
風の有無は、強さを考慮していないので、名義尺度として扱うのがいいかと思います。
ゴルフに行った行かなかったは○か×ですので、これも名義尺度として扱います。

天気については「晴れ=3・曇り=2・雨=1」と数値に変換します。
気温については「暑い=3・暖かい=2・涼しい=1」とします。
湿度は「高い=3・普通=2・低い=1」
風の有無は「ある=1・ない=0」です。

そのように変換して出来た表が、f:id:tyusuke88:20140827002737j:plainになります。
青い枠の外にあるのが、元々の表にあったものを一つ抜き出して、答えを消して、問題にしたものです。

そこで、データマイニングの中でも最も原始的ともいえる、問題になるベクトル(数列)が過去のデータの一つ一つとどの程度似ているか(類似しているか)を数値計算し最も似ているものを探し、その条件で答えがどうであったかということから問題の答えもそれと同じだろう(もしくは近いだろう)推測するという手法があり、その手法によく使われるのがコサイン類似度(Cosign Similarity)です。

まず二つのベクトルを用意し、そのコサイン類似度(二つのベクトルの類似度を数値化したものを求めるのですが、その計算方法はこうです。

ゴルフの気象条件の1行目をベクトルにしたものが
「3,3,3,0」で、
比較対象とする気象条件のベクトルは、
「1,1,3,1」とします。
この二つのベクトルがどの程度似通っているか計算するコサイン類似度では、まず、それぞれの内積を計算します。
「3,3,3,0」と
「1,1,3,1」の内積
それぞれの項目を掛け合わせたものを足し算します。
つまり、(3*1)+(3*1)+(3*3)+(0*1)=内積は15となります。
コサイン類似度は内積を使って、計算します。
具体的には、内積の値(15)÷(√((3^2)+(3^2)+(3^2)+(0^2))*((1^2)+(1^2)+(3^2)+(1^2)))
で答えは0.8333となります。
つまり
「3,3,3,0」と
「1,1,3,1」の
コサイン類似度は0.8333ということです。
また、
「1,1,3,1」と
「1,1,2,1」の
コサイン類似度は、0.9819となり、「3,3,3,0」より、「1,1,2,1」の方がより「1,1,3,1」に近いということが数値によって示された事にになります。
最も見た感じ、「3,3,3,0」と「1,1,3,1」は相当違う気がしますが、数値としてはあまり違っていない印象は受けます。
この辺は、元のデータを正規化しているかどうかでコサイン類似度も変わってくるかと思います。

とりあえず今日はここまで。
退屈ですいません。

機械学習の日記は一旦終了して、次回は日本をおそう電力価格高騰について、日経ビジネス誌を参考に記事を書いてみたいと思います。

統計解析のメモ帳~機械学習のアルゴリズム編~

教師有り学習と教師無し学習

教師有り学習の例
・データ依存の手法
・確立依存の手法
・ルールベースの手法
・回帰分析による手法

教師無し学習の例
クラスタリング手法
・相関ルールの抽出方法

機械学習は主に教師有り学習と、教師無し学習に分けられる。

教師無し学習は色々な属性を持つものを似たもの同士に分類する手法
クラスタリング手法と相関ルールの抽出方法がある。
クラスタリングの手法には自己組織化写像(コホネンネットワーク・SOM)などがある。
相関ルール抽出の手法には、古くにIBMが開発したAprioriアルゴリズムなどがある。

教師有り学習は、問題と答えを対にして与えて学習させ、最終的には高い精度で問題から正解を導き出すことを目的とするもの。
ここでは教師有り学習について具体例を交えながら学習したことについて、再アウトプットすることで記憶を整理したい。

例えばある人がゴルフに行くか行かないかについて、以下のようなデータがあったとする。
f:id:tyusuke88:20140921041242p:plain
各項目を数値に置き換える
f:id:tyusuke88:20140827002737j:plain
この青で囲まれたデータを元にしてテスト用のデータとし、17行目の答え(ゴルフへ行く)が導き出せるようなアルゴリズムについて考察したい。

まずは一番簡単なデータ依存の手法で。。。

・データ依存の手法
データ依存の手法とは、膨大なデータの中から最も質問に近いものを探し出して、類似度の近いものの答えがなんであったかを集計して答えを確率的に計算するもの。
100%一致するデータがなくとも問題との相似度とその問題の答えになるものを集めていき、答えである可能性の高いものを順番に並べていき答えを推測する。

では類似度はどう計算するか?
コサイン類似度というものを使ってみた。
コサイン類似度は、ある数列がどの程度似通っているかを数値で比較するもの。
f:id:tyusuke88:20140828033125j:plain

例えばゴルフの表でいうと8列目の「2,1,2,1」はテスト用データの「1,1,3,1」とのコサイン類似度は0.91287。
一番サンプルデータに近いのは、7列目の「1,1,2,1」でコサイン類似度は0.98198。
7列目の結果は1つまりゴルフに行く。となっているのでサンプルデータである、「晴れで、気温も高く、湿度も高く、風がある場合」、ある人はゴルフに行くだろう。と予測できる。

元々答えがあるデータなので確かめてみると17行目のパターンでは確かにゴルフへ行く、となっている。

ここまで書いたが絶対どっか間違ってる気がするし、間違ってても誰も指摘してくれないだろうし、大体こんなページ誰も見てないだろうし・・・・

もうちょっと勉強し直して出直してきます。。。。(ノД`)

ビッグデータにおける多変量解析のメモ帳

統計・解析等を勉強していく中で覚えたことを備忘録代わりに書き連ねていきます。
あまり役に立つものでも、面白いものでもありませんが、まにか間違ってたら突っ込んでもらえると助かります。

ここではデータ分析手法の一つである、多変量解析について勉強したことを備忘録として書き連ねていきます。

多変量解析(たへんりょうかいせき、英語: multivariate statistics)とは、複数の結果変数からなる多変量データを統計的に扱う手法。主成分分析、因子分析、クラスター分析などがある。一般に、多変量解析を行うためには計算負荷が高く手計算ではきわめて困難だが、コンピュータの発展により、容易に実行できるようになった。
近年では共分散構造分析(構造方程式モデリングとも言う)が普及してきている。一方、探索的多変量解析で総称される各種の手法がデータマイニングなどでよく使われるようになっている。

Wikipediaより

「多変量解析とは複数の変数に関するデータをもとにして、これらの変数間の相互関連を分析する統計的技法の総称である(体系マーケティングリサーチ事典:同友館)」とあるように、性別や年齢などの属性プロフィールデータや、ある商品やサービスに対しての認知度や理解度、好意度等に、どういう関係があるかを統計的に分析しようという極めて科学的な手法です。

株式会社マクロミルのサイトより

自分なりの解釈では、
多変量解析とは、ある現象に1つ以上の数値(要因・要素)の大小、有無などが関係しており、そのような数値が結果に対してどのように関わっているのか、もしくはいないのかということを調べ、今後どのような結果になるかを予測しようというもの。

どうでしょうか?間違ってたら誰か指摘して下さい^^;

1つ以上の数値(要因・要素)は大きく分けて以下の4つに大別される。

1.名義尺度
「質」に関わる尺度(要素)でそれぞれ異なる名義尺度同士を比べたり、大小を比較したり出来ない。
加減乗除のいずれも出来ない(しても意味がない)尺度のこと。
(例)性別・人名・職業・名前・電話番号・地域・等

2.順序尺度
名義尺度と同じく「質」に関わる尺度で、順序にのみ意味があり、尺度同士を比べることは出来ても足したり引いたり出来ない。
(例)「甲・乙・丙」「長男・次男・三男」「暑い・涼しい・寒い」「悪化・変わらず・改善」
足したり引いたり出来ない理由は、例えば「暑い」と「涼しい」の差と、「涼しい」と寒いの差が同じとは限らないため。

3.間隔尺度
「量」に関わる尺度で、それぞれの間隔に意味がある。「暑い」「涼しい」「寒い」は、上記の通り順にのみ意味があるが、これを「0℃・15℃・30℃」すれば、それぞれの間隔が等しくなり、間隔尺度として取り扱うことになる。
足したり引いたりは出来るが掛けたり割ったりは出来ない。
15℃に15℃を足して30℃としたり、30℃から15℃引いて15℃とすることも出来るが、30℃と15℃を比べて、暑さが「2倍になった」とはいえない
他にも、偏差値や、IQの数値などがこれに当てはまる。

4.比率尺度
「量」に関わる尺度で、0にも、それぞれの数値の比率にも意味がある。
加減乗除を行うことが出来る。一般的にいう物理量である。
質量・距離・大きさ・金額等

その分類を間違えると多変量解説において後々大きなミスリードを来すので注意が必要。

Microsoft社やIBM社は凋落するか

どんな大成功を収めた企業であってもその勢いは永遠には保たれない。
Microsoft社やIBM社とて同様だ。

それは全くその通りだ。

日本にも古来から盛者必衰という故事成語がある。
祇園精舎の鐘の色、諸行無常の響き有り。沙羅双樹の花の色、盛者必衰の理を現す」

しかしこの平家物語の一節も忘れ去られることなく現代日本に歴史の一部として受け継がれている。

コンピューターやインターネットの歴史はまだそれほど深くない。
しかしこれらの黎明期や普及期に大きな影響力を残した企業が容易に倒産し忘れ去られてしまうものだろうか?

自分は同じ事がMicrosoft社やIBM社にもいえると思う。
現在Microsoft社の製品は新興勢のGoogleAmazonなどの企業と比べるとかなり色あせて見える。

GoogleAmazonを筆頭とする新興勢は次々と産業界にイノベーションをおこし続けているのに比べると、Microsoft社の事業は巨大に膨らんだWindowsやOfficeなどの製品群のシェアを維持し、引き続きそれらで収益を上げる事に全ての力をつぎ込んでいるように見えるし、何かイノベーティブなものを連続的に生み出しているという印象はない。

だが1990年代後半のAppleを思い出して欲しい。当時AppleMicrosoft社のWindowsやIBMPCなどに大きく差を付けられ、収益も落ち込みIT戦争における無残な敗者と目されていた。

しかし2000年代に入りiPodiPhoneが次々と発売され、その後どうなったかは改めて語るまでもないだろう。

それを踏まえればIT業界も盛者必衰と感傷的にいうよりは、栄枯盛衰と形容した方がしっくりくる。