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 1220 ori