Vizibilitate tuturor!

Sunt adeptul suprimării formelor fără fond cu precădere prin educație, viziune comună, focalizarea energiilor, obiectivism și foarte multă răbdare.

Normalizarea observațiilor nominale

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:

iris-dataset-after-normalization

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

Cornel FătulescuDacă doriți să aflați mai multe despre mine, Cornel Fătulescu, sau proiectele în care sunt implicat, vă invit să mă descoperiți ca voluntar pe pagina membrilor AgileHub, asociație în care sunt cofondator, ca mentor la ScriuCod, ca CTO la Pentalog sau să citiți unul dintre primele articole despre mine și să mă contactați la pagina de contact.

Acest articol a fost citit de 242 ori