Să presupunem că trebuie să lucrăm cu setul de date Iris, despre care puteți afla mai multe aici.
Pe coloana specii (species) avem trei tipuri de valori:
- setosa
- versicolor
- virginica
Există mai multe moduri de a encoda aceste valori astfel încât să le putem manipula cu algoritmii noștri.
Encodarea unul-din-N (1-of-n) este cea mai simplă.
Astfel, pornind de la prima linie
5.1,3.5,1.4,0.2,setosa
putem înlocui „setosa” folosim 1,1,-1 și să obținem
5.1,3.5,1.4,0.2, 1,1,-1
La fel și pentru restul
- setosa: 1,1,-1
- versicolor: 1, -1, 1
- virginica: -1,1,1
Cum facem toate acestea în R?
#read csv data setwd("C:\\ScriuCod\\AI\\Data classification") irisData<-as.data.frame( read.csv("iris.csv",header=TRUE, sep=",")) #3 values on the species column: virginica,versicolor,setosa #virginica: 1,1,-1 #versicolor: 1,-1,1 #setosa: -1,1,1 #set 1 value on each cell for the newly created columns irisData$setosa<-1 irisData$versicolor<-1 irisData$virginica<-1 #set -1 on the right column depending on the values setosa, versicolor or virginica irisData$setosa=replace(irisData$setosa, irisData$species=="setosa",-1) irisData$versicolor=replace(irisData$versicolor, irisData$species=="versicolor",-1) irisData$virginica=replace(irisData$virginica, irisData$species=="virginica",-1) #remove the species column irisData$species<-NULL
Urmând să obținem setul de date următor:
Aceasta a fost tot! Folosirea lui -1 în loc de 0, este o chestiune de gust (în acest caz).
Normalizarea observațiilor nominale din setul de date Iris. Înlocuim, setosa cu 1,1,-1, versicolor cu 1, -1, 1 și virginica cu -1,1,1

Acest articol a fost citit de 1078 ori