R 언어 에서 가상 변수 / 벙어리 변수 생 성
3669 단어 StatisticsandR
R 언어 에서 분류 변수 (factor) 를 포함 하 는 데 이 터 를 모델 링 할 때 보통 가상 변수 나 벙어리 변수 (Dummy variable) 로 자동 으로 처리 합 니 다.그러나 일부 특수 한 함수, 예 를 들 어 neuralnet 패키지 의 neuralnet 함 수 는 미리 처리 하지 않 습 니 다.원본 데 이 터 를 직접 던 지면 "requires" 가 나타 납 니 다. numeric / complex matrix / vector arguments 는 수치 / 복수 행렬 / 벡터 매개 변수 오류 가 필요 합 니 다.
이 때 이 변 수 를 삭제 하 는 것 을 제외 하고 factor variable 을 수 동 으로 값 (0, 1) 의 가상 변수 로 변환 할 수 있 습 니 다.사용 하 는 함 수 는 보통 model. matrix (), nnet package 의 class. ind () 가 있 습 니 다.
다음은 UCI 의 german credit data 를 예 로 들 어 설명 한다.
우선 UCI 사이트 에서 german. data 데이터 세트 를 다운로드 하고 str 함수 로 간단하게 인식 한다.
download.file("http://archive.ics.uci.edu/ml/machine-learning-databases/statlog/german/german.data",
"./german.data")
data
이 데 이 터 는 21 개의 변수 가 있 는데 그 중에서 V21 은 목표 변수 이 고 V1 - V20 에는 integer 와 factor 두 가지 유형 이 포함 되 어 있다.다음은 V1 분류 변수 (level 4 개 포함) 와 V2, V5, V8 세 개의 수치 형 변 수 를 해석 변수 로 모델 링 합 니 다.
## 'data.frame': 1000 obs. of 21 variables:
## $ V1 : Factor w/ 4 levels "A11","A12","A13",..: 1 2 4 1 1 4 4 2 4 2 ...
## $ V2 : int 6 48 12 42 24 36 24 36 12 30 ...
## $ V3 : Factor w/ 5 levels "A30","A31","A32",..: 5 3 5 3 4 3 3 3 3 5 ...
## $ V4 : Factor w/ 10 levels "A40","A41","A410",..: 5 5 8 4 1 8 4 2 5 1 ...
## $ V5 : int 1169 5951 2096 7882 4870 9055 2835 6948 3059 5234 ...
## $ V6 : Factor w/ 5 levels "A61","A62","A63",..: 5 1 1 1 1 5 3 1 4 1 ...
## $ V7 : Factor w/ 5 levels "A71","A72","A73",..: 5 3 4 4 3 3 5 3 4 1 ...
## $ V8 : int 4 2 2 2 3 2 3 2 2 4 ...
## $ V9 : Factor w/ 4 levels "A91","A92","A93",..: 3 2 3 3 3 3 3 3 1 4 ...
## $ V10: Factor w/ 3 levels "A101","A102",..: 1 1 1 3 1 1 1 1 1 1 ...
## $ V11: int 4 2 3 4 4 4 4 2 4 2 ...
## $ V12: Factor w/ 4 levels "A121","A122",..: 1 1 1 2 4 4 2 3 1 3 ...
## $ V13: int 67 22 49 45 53 35 53 35 61 28 ...
## $ V14: Factor w/ 3 levels "A141","A142",..: 3 3 3 3 3 3 3 3 3 3 ...
## $ V15: Factor w/ 3 levels "A151","A152",..: 2 2 2 3 3 3 2 1 2 2 ...
## $ V16: int 2 1 1 1 2 1 1 1 1 2 ...
## $ V17: Factor w/ 4 levels "A171","A172",..: 3 3 2 3 3 2 3 4 2 4 ...
## $ V18: int 1 1 2 2 2 2 1 1 1 1 ...
## $ V19: Factor w/ 2 levels "A191","A192": 2 1 1 1 1 2 1 2 1 1 ...
## $ V20: Factor w/ 2 levels "A201","A202": 1 1 1 1 1 1 1 1 1 1 ...
## $ V21: int 1 2 1 1 2 1 1 1 1 2 ...
우선 neuralnet 패 키 지 를 불 러 와 서 수치 형 변수 로 만 모델 링 을 시도 해 보 세 요. 잘못 보고 하지 않 았 습 니 다.
library("neuralnet")
NNModelAllNum
설명 변수 에 V1 을 넣 었 을 때 다음 과 같은 오류 가 발생 했 습 니 다.
NNModel
이 때 model. matrix 함수 로 V1 을 세 개의 가상 변수, V1A 12, V1A 13, V1A 14 로 바 꿀 수 있 습 니 다.
dummyV1
model. matrix 함 수 는 수치 형 과 분류 Level = 2 의 분류 형 변수 에 영향 을 주지 않 기 때문에 네 개의 변 수 를 함께 이 함수 로 새로운 데이터 세트 modeldata 를 생 성하 면 이 데이터 세트 로 모델 링 을 할 수 있 습 니 다.
modelData
다른 방법 은 nnet package 의 class. ind 함수 에서 나 옵 니 다.
library("nnet")
dummyV12
이 결 과 는 model. matrix 와 약간 차이 가 있 고 네 개의 가상 변 수 를 생 성 한 것 을 볼 수 있 습 니 다.다 중 공선 성 을 피하 기 위해 level = n 의 분류 변 수 는 임의의 n - 1 개의 가상 변 수 를 선택해 야 합 니 다.
## A11 A12 A13 A14
## [1,] 1 0 0 0
## [2,] 0 1 0 0
## [3,] 0 0 0 1
## [4,] 1 0 0 0
## [5,] 1 0 0 0
## [6,] 0 0 0 1
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[회귀분석2] Non-linear Regression Models assignment #1서울시립대학교 김규성 교수님의 회귀분석2 강의안 및 과제를 기반으로 작성한 문서입니다. 2020년 2학기에 회귀분석2 과목을 수강하며 제출했던 과제들을 리뷰한다. 학기가 끝난 지 얼마 되지도 않았는데 그새 다 까먹어...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.