R의 데이터 전처리: Ultimate Tutorial [2022]

게시 됨: 2021-03-01

다음 R 튜토리얼의 데이터 전처리에서는 데이터 전처리를 수행하는 방법에 대한 기본 사항을 배웁니다. 이 튜토리얼을 사용하려면 R 및 프로그래밍의 기본 사항에 익숙해야 합니다.

목차

1. 단계: 문제 찾기 및 수정

먼저 데이터 세트를 가져와서 R 자습서에서 데이터 사전 처리를 시작합니다. 결국 데이터가 처음부터 없으면 데이터를 전처리할 수 없습니다.

우리의 경우 데이터는 작업 디렉토리의 data.csv 파일에 저장됩니다. setwd("원하는 위치") 명령을 사용하여 작업 디렉토리를 설정할 수 있습니다.

프로세스를 시작하는 방법은 다음과 같습니다.

데이터 세트 <- read.csv("Data.csv")

데이터세트는 다음과 같습니다.

## 국가 나이 샐러리 구입 한
## 1 프랑스 44 72000 아니요
## 2 스페인 27 48000
## 독일 30 54000 아니요
## 4 스페인 38 61000 아니요
## 5 독일 40 없음
## 6 프랑스 35 58000
## 7 스페인 없음 52000 아니요
## 8 프랑스 48 79000
## 9 독일 50 83000 아니요
## 10 프랑스 37 67000

보시다시피 데이터 세트의 급여 및 연령 열에 누락된 값이 있습니다. 데이터 세트에 있는 문제를 식별하여 이제 동일한 문제를 수정할 수 있습니다.

데이터세트에 다른 문제가 없는 것 같으므로 누락된 값만 처리하면 됩니다. NA 값을 각 열의 평균 값으로 바꾸면 이 문제를 해결할 수 있습니다. 방법은 다음과 같습니다.

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

ave(dataset$Age, FUN = 함수(x)

평균(x, na.rm = TRUE)),

데이터세트$나이)

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

ave(dataset$Salary, FUN = function(x)

평균(x, na.rm = TRUE)),

데이터 세트 $ 급여)

여기에서 ave() 함수를 사용한 방법에 주목하세요. 입력한 특정 열의 평균을 취합니다. 여기서 FUN은 NA 값(na.rm=TRUE)을 제외한 평균을 계산하는 x의 함수입니다.

또 다른,

dataset$Age에 있는 모든 것을 가져옵니다.

이제 mean() 함수를 사용할 것입니다.
# x = 1 2 3 정의

x <- 1:3

#결측값 소개

x[1] <- 해당 사항 없음

# 평균 = NA

평균(x)

## [1] 해당 사항 없음

# mean = NA 값을 제외한 평균

평균(x, na.rm = T)

## [1] 2.5

문제를 식별하고 수정한 후 데이터 세트는 다음과 같습니다.

## 국가 나이 샐러리 구입 한
## 1 프랑스 44 72000.00 아니요
## 2 스페인 27 48000.00
## 독일 30 54000.00 아니요
## 4 스페인 38 61000.00 아니요
## 5 독일 40 63777.78
## 6 프랑스 35 58000.00
## 7 스페인 38 52000.00 아니요
## 8 프랑스 48 79000.00
## 9 독일 50 83000.00 아니요
## 10 프랑스 37 67000.00

더 읽어보기: R 프로그래밍 언어의 직업 기회

2. 단계: 범주형 데이터

범주형 데이터는 특정 범주에 속하는 숫자가 아닌 데이터입니다. 데이터 세트의 국가 열은 범주형 데이터입니다. R의 read.csv() 함수는 모든 문자열 변수를 범주형 변수로 만듭니다. 그러나 모든 경우에 사용할 수는 없습니다.

특정 변수를 요인 변수로 만드는 방법은 다음과 같습니다.
dataset$Country = factor(dataset$Country,

수준 = c('프랑스', '스페인', '독일'),

레이블 = c(1, 2, 3))

dataset$Purchased = factor(dataset$Purchased,

수준 = c('아니요', '예'),

레이블 = c(0, 1))

3. 단계: 데이터 분할

이제 데이터 세트를 두 개의 개별 데이터 세트로 분할해야 합니다. 하나는 기계 학습 모델을 훈련하기 위한 것이고 다른 하나는 동일한 것을 테스트하기 위한 것입니다.

이를 위해 먼저 caTools 패키지(사용할 수 없는 경우)를 설치하고 라이브러리에 추가합니다. 그런 다음 set.seed() 함수를 사용하여 분할이 무작위로 수행되도록 합니다. 다음 코드를 사용하십시오.
라이브러리(caTools)

set.seed(123)

split = sample.split(dataset$Purchased,SplitRatio = 0.8)

training_set = 부분 집합(데이터 집합, 분할 == TRUE)

test_set = 부분 집합(데이터 집합, 분할 == FALSE)

분할 비율을 80:20으로 유지했음을 눈치채셨을 것입니다. 이는 훈련 세트와 테스트 세트에 대한 가장 일반적인 분할 비율이기 때문입니다. 우리의 sample.split() 메서드는 열을 가져와서 분할 비율에 따라 무작위로 true 및 false 값을 갖는 숫자 배열을 생성했습니다.

4. 단계: 기능 확장 또는 과적합

데이터 세트의 여러 기능에 다른 범위가 있는 경우 기능 크기 조정이 필요합니다. 우리의 경우 Age 및 Salary 열의 범위가 다르므로 ML 모델을 훈련하는 데 문제가 발생할 수 있습니다.

다른 피처보다 범위가 훨씬 더 큰 피처가 있는 경우 유클리드 거리가 상당히 증가하여 모델이 잘못된 결과를 제공하게 됩니다.

R의 대부분의 라이브러리는 이 문제를 자동으로 해결하지만 이 문제를 해결하는 방법을 아는 것이 중요합니다. 다음을 수행합니다.

training_set[,2:3] = scale(training_set[,2:3])

test_set[,2:3] = scale(test_set[,2:3])

문제가 해결되고 훈련 세트의 기능이 동일한 범위를 가지므로 기계 학습 구현 중에 오류가 발생할 가능성이 최소화됩니다.

세계 최고의 대학에서 데이터 과학 인증받으십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 통해 경력을 빠르게 추적하십시오.

결론

R 튜토리얼의 데이터 전처리가 도움이 되었기를 바랍니다. 직접 테스트하기 전에 튜토리얼을 이해하는 것이 가장 좋습니다. 개념을 이해하는 것은 그것들을 사용하는 것보다 훨씬 더 중요합니다.

R 튜토리얼에서 데이터 전처리에 대해 어떻게 생각하십니까? 아래 댓글에서 공유하세요.

R, 데이터 과학에 대해 자세히 알아보려면 일하는 전문가를 위해 만들어졌으며 10개 이상의 사례 연구 및 프로젝트, 실용적인 실습 워크샵, 업계 전문가와의 멘토링, 일대일 교육을 제공하는 데이터 과학의 Executive PG를 확인하십시오. 업계 멘토와 1위, 최고의 기업에서 400시간 이상의 학습 및 취업 지원.

파이썬에는 몇 가지 유형의 다형성이 있습니까?

Python에서 다형성은 다양한 목적으로 사용할 수 있는 일반 함수 이름을 나타냅니다. 이 아이디어는 일반적으로 객체 지향적인 Python 프로그래밍 개념에서 사용됩니다.
다형성은 Java 및 C++와 같은 다른 프로그래밍 언어에서와 마찬가지로 Duck Typing, Operator 오버로딩, 메서드 오버로딩 및 메서드 오버라이드와 같은 여러 목적을 위해 Python에서 구현됩니다. 오버로딩과 재정의는 다형성을 달성하기 위한 두 가지 기본 방법입니다.
이름은 같지만 인수가 다른 여러 메서드가 있는 클래스를 메서드 오버로딩이라고 합니다. 메서드 오버로딩은 기본적으로 Python에서 지원되지 않지만 이를 수행하는 많은 기술이 있습니다.

오리 타이핑이란 무엇입니까?

오리 타이핑은 다형성 개념입니다. 오리 타이핑이라는 말은 오리처럼 걷고, 꽥꽥거리고, 헤엄치는 모든 것을 그것이 무엇이든 상관없이 오리라고 부른다는 속담에서 유래했습니다. 간단히 말해서, 어떤 것이 자신의 동작과 다른 것과 일치하는 경우 해당 범주의 구성원으로 간주됨을 나타냅니다.

오버로딩과 오버라이딩이란?

동일한 이름과 인수를 가진 메서드가 파생 클래스와 기본 또는 상위 클래스 모두에서 사용되는 경우 파생 클래스 메서드는 기본 클래스에서 제공되는 메서드를 재정의한다고 합니다. 재정의된 메서드가 호출되면 파생 클래스의 메서드가 항상 호출됩니다. 기본 클래스에서 사용되었던 메서드가 이제 숨겨집니다.
반면에 Python은 메서드 매개변수의 유형, 수량 또는 순서를 기반으로 하는 메서드 오버로딩을 제공하지 않습니다. 메서드 오버로딩은 여러 방법으로 호출할 수 있도록 메서드를 정의하기 위한 Python 접근 방식입니다. 다른 프로그래밍 언어와 달리 이 언어는 고유합니다.