Preprocesarea datelor în R: Ultimate Tutorial [2022]

Publicat: 2021-03-01

În următorul nostru tutorial de preprocesare a datelor în R, veți învăța elementele fundamentale despre cum să efectuați preprocesarea datelor. Acest tutorial necesită să fiți familiarizat cu elementele de bază ale R și programare:

Cuprins

1. Pas: Găsirea și remedierea problemelor

Vom începe preprocesarea datelor în tutorialul R importând mai întâi setul de date. La urma urmei, nu puteți preprocesa datele dacă nu le aveți în primul rând.

În cazul nostru, datele sunt stocate în fișierul data.csv din directorul de lucru. Puteți utiliza comanda setwd(„locația dorită”) și puteți seta directorul de lucru.

Iată cum veți începe procesul:

set de date <- read.csv(„Data.csv”)

Iată setul nostru de date:

## Țară Vârstă Salariu Cumparat
## 1 Franţa 44 72000 Nu
## 2 Spania 27 48000 da
## 3 Germania 30 54000 Nu
## 4 Spania 38 61000 Nu
## 5 Germania 40 N / A da
## 6 Franţa 35 58000 da
## 7 Spania N / A 52000 Nu
## 8 Franţa 48 79000 da
## 9 Germania 50 83000 Nu
## 10 Franţa 37 67000 da

După cum puteți vedea, lipsesc valori în coloanele Salariu și Vârstă ale setului nostru de date. Am identificat problema prezentă în setul nostru de date, așa că acum putem începe să o reparăm.

Nu par să fie prezente alte probleme în setul nostru de date, așa că trebuie să ne ocupăm doar de valorile lipsă. Putem rezolva această problemă înlocuind valorile NA cu valorile medii ale coloanelor respective. Iată cum:

dataset$Age <- ifelse(is.na(dataset$Age),

ave(set de date$Age, FUN = function(x)

medie (x, na.rm = TRUE)),

set de date$Age)

dataset$Salary <- ifelse(is.na(dataset$Salary),

ave(set de date$Salariu, FUN = function(x)

medie (x, na.rm = TRUE)),

dataset$Salary)

Observați cum am folosit funcția ave() aici. Este nevoie de media coloanei specifice pe care ați introdus-o, unde FUN este o funcție a lui x care calculează media excluzând valorile NA (na.rm=TRUE).

altfel,

luați orice este prezent în dataset$Age

Vom folosi funcția mean() acum:
#definind x = 1 2 3

x <- 1:3

#introducerea valorii lipsă

x[1] <- NA

# medie = NA

medie (x)

## [1] NA

# medie = medie excluzând valoarea NA

medie(x, na.rm = T)

## [1] 2.5

După identificarea și remedierea problemei, setul nostru de date arată astfel:

## Țară Vârstă Salariu Cumparat
## 1 Franţa 44 72000,00 Nu
## 2 Spania 27 48000,00 da
## 3 Germania 30 54000,00 Nu
## 4 Spania 38 61000,00 Nu
## 5 Germania 40 63777,78 da
## 6 Franţa 35 58000,00 da
## 7 Spania 38 52000,00 Nu
## 8 Franţa 48 79000,00 da
## 9 Germania 50 83000,00 Nu
## 10 Franţa 37 67000,00 da

Citește și: Oportunități de carieră în limbajul de programare R

2. Pasul: Date categorice

Datele categoriale sunt date nenumerice care aparțin unor anumite categorii. Coloana Țară din setul nostru de date este date categorice. Funcția read.csv() din R ar transforma toate variabilele șir ca variabile categoriale. Cu toate acestea, nu îl putem folosi în toate cazurile.

Iată cum puteți crea anumite variabile ca variabile factori:
set de date$Țară = factor(set de date$Țară,

niveluri = c('Franța', 'Spania', 'Germania'),

etichete = c(1, 2, 3))

dataset$Purchased = factor(dataset$Purchased,

niveluri = c('Nu', 'Da'),

etichete = c(0, 1))

3. Pasul: Împărțirea datelor

Acum, trebuie să ne împărțim setul de date în două seturi de date separate. Unul pentru antrenarea modelului nostru de învățare automată, în timp ce celălalt pentru testarea aceluiași model.

Pentru a face acest lucru, mai întâi vom instala pachetul caTools (dacă nu este disponibil) și îl vom adăuga la biblioteca noastră. După aceea, vom folosi funcția set.seed() pentru a ne asigura că împărțirea se face aleatoriu. Utilizați următorul cod:
bibliotecă (caTools)

set.seed(123)

split = sample.split(dataset$Purchased,SplitRatio = 0,8)

training_set = subset (set de date, divizat == TRUE)

set_test = subset (set de date, împărțire == FALSE)

Trebuie să fi observat că am păstrat raportul de împărțire la 80:20. Acest lucru se datorează faptului că este cel mai convențional raport de împărțire pentru seturile de antrenament și seturile de testare. Metoda noastră sample.split() a luat coloana și a creat o matrice numerică cu valori aleatorii adevărate și false în funcție de raportul de împărțire.

4. Pasul: Scalarea caracteristicilor sau supraajustarea

Scalarea caracteristicilor este necesară atunci când diferite caracteristici din setul dvs. de date au intervale diferite. În cazul nostru, coloanele Vârstă și Salariu au intervale diferite, ceea ce poate cauza probleme în antrenarea modelului nostru ML.

Când aveți o caracteristică cu o gamă semnificativ mai mare decât cealaltă caracteristică, distanța euclidiană crește considerabil, ceea ce face ca modelul să dea rezultate greșite.

Rețineți că majoritatea bibliotecilor din R rezolvă această problemă automat, dar este important să știți cum să o remediați. Urmează următoarele instrucțiuni:

training_set[,2:3] = scară(training_set[,2:3])

set_test[,2:3] = scară(set_test[,2:3])

Ar rezolva problema, iar caracteristicile setului dvs. de antrenament ar avea aceleași intervale, minimizând șansele oricăror erori în timpul implementărilor de învățare automată.

Obțineți certificare în știința datelor de la cele mai bune universități din lume. Învață programe Executive PG, programe avansate de certificat sau programe de master pentru a-ți accelera cariera.

Concluzie

Sperăm că ați găsit utilă preprocesarea datelor din tutorialul R. Cel mai bine ar fi să înțelegeți tutorialul înainte de a încerca să îl testați singur. Înțelegerea conceptelor este mult mai importantă decât utilizarea lor.

Ce părere aveți despre tutorialul nostru de preprocesare a datelor în R? Distribuiți-le în comentariile de mai jos.

Dacă sunteți curios să aflați despre R, știința datelor, consultați PG-ul nostru executiv în știința datelor care este creat pentru profesioniști care lucrează și oferă peste 10 studii de caz și proiecte, ateliere practice practice, mentorat cu experți din industrie, 1 cu mentori din industrie, peste 400 de ore de învățare și asistență profesională cu firme de top.

Câte tipuri de polimorfism există în python?

În Python, polimorfismul se referă la un nume de funcție generic care poate fi folosit pentru o varietate de scopuri. Această idee este folosită în mod obișnuit în conceptul de programare Python care este orientat pe obiecte.
Polimorfismul este implementat în Python în mai multe scopuri, cum ar fi Duck Typing, Operator overloading, Method overriding și Method overriding, așa cum este în alte limbaje de programare, cum ar fi Java și C++. Supraîncărcarea și suprascrierea sunt cele două metode principale pentru realizarea polimorfismului.
O clasă cu multe metode cu același nume, dar argumente distincte este cunoscută sub numele de supraîncărcare a metodei. Deși supraîncărcarea metodei nu este acceptată implicit în Python, există numeroase tehnici pentru a face acest lucru.

Ce este tastarea Duck?

Tiparea de rață este o noțiune de polimorfism. Expresia tastare de rață provine dintr-un proverb care spune că orice umblă, șarlată și înoată ca o rață este numit rață, indiferent de ce este. În termeni simpli, indică faptul că, dacă ceva își potrivește comportamentul cu altceva, va fi considerat membru al acelei categorii.

Ce este supraîncărcarea și suprasolicitarea?

Când o metodă cu același nume, precum și argumente este utilizată atât într-o clasă derivată, cât și într-o clasă de bază sau super, se spune că metoda clasei derivate înlocuiește metoda furnizată în clasa de bază. Când metoda suprascrisă este apelată, metoda clasei derivate este întotdeauna invocată. Metoda care a fost utilizată în clasa de bază este acum ascunsă.
Python, pe de altă parte, nu oferă supraîncărcarea metodei bazată pe tipul, cantitatea sau ordinea parametrilor metodei. Supraîncărcarea metodei este o abordare Python pentru definirea unei metode astfel încât să poată fi apelată în mai multe moduri. Spre deosebire de alte limbaje de programare, acesta este unic.