Rで機械学習:始め方2/3

I.KNNによる機械学習

 

1に続いて、ネット上のコンテンツで機械学習を学びます。

今回は下記のページを学習します。非常にわかりやすく書かれています。

Machine Learning in R for beginners

ライブラリk-nearest neighbors、いわゆるKNNが用いられています。

 

II.データiris

 

アイリスという花にVersicolor、Setosa、Virginicaの3つの種類があって、それぞれガクと花びらの大きさに特徴があります。

次のリンク先にアイリスの3種類の写真があります。

Machine Learning in R for beginners

データはRにすでに読み込まれているirisです。

irisは、ガクの長さと幅、花びらの長さと幅、アイリスの種類名の一覧です。

内容をみてみましょう。Runをクリックしてください。データが表示されます。

 

iris

 

 

ふつうなら、3種類それぞれのガクと花の大きさの範囲を指定してその範囲に合うかどうか判定すればよいのですが、それは面倒です。

コンピュータがデータの特徴を把握して判定ルールを決め、適当に分類してくれれば便利です。

機械学習のプログラムを用いて、ガクと花びらの大きさがわかったとき、その種類を判定するプログラムを作ります。

 

 

 

III.散布図

 

データの分布を見るために、ガクの長さと広さ、すなわち、Sepal.LengthとPetal.Widthを取り出して散布図を描きます。

上のリンクの解説では、ggvisというライブラリを使ってグラフを描いていますが、Rウィジェットにはggvisがインストールされていませんので、ggplot2を使ってグラフを描きました。

 

# import library library(ggplot2) # x for Sepal.Length, y for Sepal.Width # colored nu Species p5 = ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, colour = Species)) + geom_point() p5

 

 

次に、花びらの長さと幅で散布図を描きます。

 

# import library library(ggplot2) # x for Petal.Length, y for Petal.Width # colored by Species p5 = ggplot(iris, aes(x = Petal.Length, y = Petal.Width, colour = Species)) + geom_point() p5

 

IV.データの分割と種類ラベルの作成

 

sample関数を用いて、データを機械学習のためにのトレーニング用データとテスト用データに分けます。

 

# set a seed set.seed(1234) # assign 1 or 2 to the 150 rows with weights of 0.67 and 0.33 ind <- sample(2, nrow(iris), replace=TRUE, prob=c(0.67, 0.33)) # compose trainging set iris.training <- iris[ind==1, 1:4] # inspect trainging set head(iris.training) # compose test set iris.test <- iris[ind==2, 1:4] # inspect test set head(iris.test)

 

次にKNNアルゴリズムで、推測するアイリスの種類名のラベルを保存します。

 

# set a seed set.seed(1234) # assign 1 or 2 to the 150 rows with weights of 0.67 and 0.33 ind <- sample(2, nrow(iris), replace=TRUE, prob=c(0.67, 0.33)) # Compose `iris` training labels iris.trainLabels <- iris[ind==1,5] # Inspect result print(iris.trainLabels) # Compose `iris` test labels iris.testLabels <- iris[ind==2, 5] # Inspect result print(iris.testLabels)

 

 

次回はいよいよ機械学習のスクリプトです。

 

 

 

 

Please follow and like us:
error

About shibatau

I was born and grown up in Kyoto. I studied western philosophy at the University and specialized in analytic philosophy, especially Ludwig Wittgenstein at the postgraduate school. I'm interested in new technology, especially machine learning and have been learning R language for two years and began to learn Python last summer. Listening toParamore, Sia, Amazarashi and MIyuki Nakajima. Favorite movies I've recently seen: "FREEHELD". Favorite actors and actresses: Anthony Hopkins, Denzel Washington, Ellen Page, Meryl Streep, Mia Wasikowska and Robert DeNiro. Favorite books: Fyodor Mikhailovich Dostoyevsky, "The Karamazov Brothers", Shinran, "Lamentations of Divergences". Favorite phrase: Salvation by Faith. Twitter: @shibatau

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.