【機械学習の練習】Scikit で台湾株価指数のトレンドを学ぶ(1)- 機械学習入門
機械学習は統計分析の手法の一つです。ざっくり言うと、機械学習で扱える問題は、分類(classification)、回帰(regression)、クラスタリング(clustering)、ルール抽出(Rule Extraction)の4つに大別できます。

ご安心ください!今回は口先だけの話ではありません。Ctrl + C みたいなネタはもう出てきませんよ。

機械学習は統計分析の手法の一つです。基本的な考え方は、大量のデータを渡して、結果を出してもらうというものです。
その結果は、求める答えそのもの(例:左に曲がるか右に曲がるか)の場合もあれば、何らかの抽象的な概念で、それをもとに私たちが分類する場合もあります。
ざっくり言うと、機械学習で扱える問題は、分類(classification)、回帰(regression)、クラスタリング(clustering)、ルール抽出(Rule Extraction)の4つに大別できます。
1. 分類(classification): 答えがわかっているデータを機械学習モデルに学習させます。たとえば: X = [0,2,3,3,4,5,6,7,8] Y = Taipei X = [0,7,3,3,4,5,6,7,8] Y = Kaohsiung X = [0,4,3,3,4,5,6,7,8] Y = Taichung X = ... 大量の電話番号を与え、その答えが市外局番、というデータです。 モデルが電話番号を見ただけで、どの都市のものか判別できるようになることを期待します。これが分類問題です。 モデルの学習が終わったら、X = [0,2,1,2,3,4,5,6,7,8] を入力してみます。 モデルが Taipei と答えれば、学習成功です! 2. 回帰(regression):答えがわかっているデータを機械学習モデルに学習させます。たとえば: X = [0,1,2,3] Y = 12 X = [0,3,4,2] Y = 22 X = [0,1,1,1] Y = 23 X = ... 大量のランダムな数字列を与え、その答えが数字の合計、というデータです。 モデルがランダムな数字列を見たら、一つの数値を返せるようになることを期待します。 補足すると、分類との最大の違いは予測結果です。予測結果が連続値なら回帰問題、離散値なら分類問題(またはその他)になります。 回帰問題の実例は、こちらのリンクをご覧ください。過去6時間の河川水位と降水量から、2時間後の水位を予測しています。 3. クラスタリング(clustering):答えのわからない大量のデータと、グループ分けのロジック(点と点の距離など)をモデルに与え、データを分類させます。 例:Facebook の顔認識 4. ルール抽出(Rule Extraction) これは少し抽象的で、分析によってルールを見つけるようなものです。 たとえば1万枚の写真を入れてクラスタリングしたら、あなたとお姉さんがいつも同じグループに分けられていたとします。すると、あなたとお姉さんは同じ父と母を持つのでは、と推測できるわけです。 写真認識 -> 血縁関係。これがだいたいルール抽出というものだと思います! こじつけっぽく感じても大丈夫です。もし1万品目の販売数を回帰予測して、ビールとおむつの購買サイクルが同じだとわかったら、「お酒を飲むと子どもができやすい」と推測できるかもしれません。販売予測 -> 飲酒で子どもができる。
ここまでで、機械学習がどんな問題を解決できるかは、おおむね理解できたと思います。
でも肝心なのは、どうやって解決するのか、です。
通常は、一つのアルゴリズムか複数のアルゴリズムの組み合わせを選んで問題に取り組みます。結果が収束するなら、どのアルゴリズムでも試す価値があります。
では、どんなアルゴリズムがあるのでしょうか?
1. Regression Algorithms 回帰の手法です。先ほどの水位予測はこの方法で解いています。 もちろん回帰には特殊な手法がたくさんありますが、ここでは割愛します。 2. Instance-based Algorithms すでに起きた事実をもとに、将来ある兆候が現れたときに何が起こるかを推測します。 3. Clustering Algorithms グループ分けです。任意の次元の空間に点をばらまき、ユークリッド距離(Euclidean distance)を自分で定義して、近くに集まったものを同じ仲間とみなします。 代表的なアルゴリズムは k-Means、k-Median です。 4. Kernel Algorithms ビッグデータ時代以前、機械学習で最強とされたアルゴリズムで、最も有名なのはサポートベクターマシン(Supported Vector Machine, SVM)です。 元のデータを高次元に写像してから分類するという考え方です。どのみち、ある次数の polynomial function ならデータをきれいに切り分けられます。 5. Ensemble Algorithms 個人的にけっこう好きな手法です。学習済みのさまざまなモデルの結果を学習して、もう一度結果を算出します。AlphaGo をイメージするとわかりやすいでしょう。今の局面、あなたが打った一手の後の局面、さらに自分が次に打つ一手のその後の展開を把握したうえで、どこに打つかを決めるのです。 6. Neural Network Algorithms 私たちの神経細胞をまねたもので、大量のデータをニューロンに入力すると、ニューロンが非線形に反応する、というものです。 7. Deep Learning ニューラルネットワークの変わり種ともいえるもので、次回以降で主に取り上げる手法です。たくさんのニューロンが互いに信号を出し入れし合い、最終的に神経系全体が一つの信号やカテゴリーを出力する、とイメージしてください。
もちろん、ほかにもさまざまなアルゴリズムがあります。基本的には、必要になったときに論文を探せば十分です。
興味のある方がさらに掘り下げられるよう、参考資料を載せておきます。
[1] Practical Machine Learning Problem
[2] 図解 機械学習(中国語版)
[3] Coursera — Machine Leanring








-p-1080.jpeg)











