MachineLearning: 機械学習の始め方2/3, r ver. 5

Last Updated on August 5, 2021 by shibatau

機械学習の始め方1/3

機械学習の始め方2/3

機械学習の始め方3/3

I.KNNによる機械学習

 

次の解説にしたがって、KNN(k-nearest neighbors)を学びます。

 

Machine Learning in R for beginners

 

II.データ

 

サンプル・データirisを用います。ガクの長さと幅と花びらの長さと幅、それぞれの種別(Versicolor,  Setosa, Virginica)のデータです。

次のRunをクリックしてください。データが表示されます。

 

iris

 

 

III.データの内容(EDA)

 

1. str( )で構造を表示

 

アイリスのデータは、データ・フレームです。これはExcelの表のような形のデータです。

“obs”はobservationsで、150行であることがわかります。”variables”は「変数」で5列であることがわかります。

“num”はnumericで、データが数値であることを示しています。

“Factor”はSecies列が、レベルを持つ文字であることを示しています。

 

 

2. summary( )でデータを要約

 

データは5列ですが、5列目のSpeciesが回り込んで下に表示されます。

“Min.”は最小値、”Median”は中央値、”Max.”は最大値です。”1st Qu”は1st Quarterで4分位の第1の部分の値です。

 

 

次のRunをクリックするとstr( )とsummary( )が実行されます。

 

str(iris) summary(iris)

 

 

3. ガクの長さと幅でscatter plotを作成

 

# 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(size = 3L) p5

 

 

4. 花びらの長さと幅でscatter plotを作成

 

# 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(size = 3L) p5

 

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

 

sample( )を用いて、ランダムにデータを機械学習のためにのトレーニング用データ(67%)とテスト用データ(33%)に分けます。

set.seed()でサンプルを再現できるようにシードを設定します。

 

ランダムというと全くのでたらめに取り上げたサンプルを思い浮かべますが、まったくでたらめだと再現できません。プログラムで「ランダム」というのは、恣意的なサンプリングではないという意味で、再現できるランダムです。シードを設定しない場合、コンピュータの時計の時間からランダムな数を割り当てます、、、たぶん。

 

# 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)

 

 

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.