본문 바로가기

전체 글194

[회귀 - 1] 회귀란? 회귀란 1개 이상의 독립 변수와, 1개의 종속 변수간의 상관관계를 모델링 하는 것이다. 라고 하면 어려운데 그냥 간단히 말하면 식이다. y = a * x + b 라는 식이 있다면 y는 종속 변수, x는 독립 변수가 된다. 단순 선형 회귀란? x, 즉 독립 변수가 1개인 회귀 다중 선형 회귀란? 독립 변수가 2개 이상인 회귀 다항 회귀란? '선형'이 아닌 '곡선' 회귀를 말한다. 즉, 차수가 2 이상이다. ex) y = a * x^2 + b - 아래는 뇌피셜을 포함하고 있어 정확하지 않을 수 있음 회귀의 진짜 원래 의미는 우리가 원래 흔히 알고 있는 '돌아가다'의 뜻인 회귀가 맞다. 하지만 찾아보니 통계학의 회귀는 '평균으로 돌아가다'라는 의미를 뜻하는 것 같다. 평균으로 돌아가다라는 말은 '추세'라고도 .. 2022. 4. 17.
[데이터 전처리 - 5] 데이터 스케일링 데이터 스케일링이 필요한 이유는 컬럼 간의 차이가 너무 크면 분석이 힘들기 때문이다(Age는 많아봐야 100살인데, Salary는 수십만이 될수도). 혹은 수능 만점(500점인가?)과 토익 만점(990점)에서 수능 총점수 100점과 토익 점수 100점의 가치를 동일 선상에 둘 수 없기 때문이기도 하다. 약간 위 사진 예시와 같은 느낌이라고 할 수 있다. 이제 이 dastaset의 Age와 Salary를 스케일링 해보자. dastaset[, 2:3] = scale(dastaset[, 2:3]) # '2:3'은 2열과 3열을 스케일링 한다는 뜻이다. 위와 같은 커맨드를 실행하면 아름답게 스케일링 된 결과를 확인할 수 있다. 2022. 4. 17.
[데이터 전처리 - 4] 훈련 세트와 테스트 세트 나누기 훈련 세트와 테스트 세트가 필요한 이유는 기본적으로 머신러닝의 성능을 평가할 때 훈련 세트와 테스트 세트가 동일한 환경이어야 때문이다. 하지만 같은 조건의 두 데이터세트를 구하는 것보다 현재 존재하는 데이터 세트를 나눠서 훈련 세트와 테스트 세트를 만드는게 더 쉽기 때문에 보통 후자의 방법을 많이 사용한다. 데이터세트를 분할하기 위해서 caTools라는 라이브러리의 도움을 받을건데 설치를 위해 다음과 같은 커맨드를 입력해준다. install.packages('caTools') 설치 후 활성화 했다면, 항상 같은 분할값을 얻기 위해 seed 설정을 해주고, 분할해준다. set.seed(123) # ()에 원하는 시드값을 입력 split = sample.split(dataset$Purchased, Split.. 2022. 4. 16.
[데이터 전처리 - 3] 범주형 데이터 (Categorical Data) 위 사진에서 범주형 데이터는 Country 컬럼과 Purchased 컬럼이다. Country에는 France, Spain, Germany Purchased에는 Yes, No 범주형 데이터가 어떤 느낌인지 바로 느껴진다. (enum 같은?) 머신러닝은 기본적으로 모두 숫자로 이루어지기 때문에 이런 값들을 숫자로 바꿔주는 것이 중요하다. 이렇게 코드를 실행시켜주면 이처럼 아름답게 숫자로 모두 바뀐 것을 알 수 있다. Factor는 "정해진 범주 내에서 카테고리별로 분석하기 위해 주로 사용되는 데이터 자료형" 2022. 4. 16.
[데이터 전처리 - 2] 누락된 데이터 처리 (Taking care of missing data) 누락된 데이터를 처리하는 방법 2가지 그냥 삭제한다. 하지만 이렇게 하면 중요한 데이터를 잃어버릴 가능성이 있기 때문에 비추천 특정 컬럼에 대해서 누락된 행을 제외한 나머지 데이터들의 평균 값을 넣어준다. 실제 데이터와 큰 오차가 있을 가능성이 적어 추천 따라서 2번을 실습해보겠다. dataset$Age = ifelse(is.na(dataset$Age), ave(dataset$Age, FUN = function(x) mean(x, na.rm = TRUE)), dataset$Age) 를 실행하면 (Salary 컬럼에 대해서는 Age를 Salary로 바꾸기만 하면 된다) 이처럼 데이터가 모두 채워진 모습을 볼 수 있다. 2022. 4. 16.
728x90