R배우고 Data Scientist로 거듭나기
UX디자이너로 10년차, 나와 롤의 한계를 느끼고 새로이 관심을 갖기 시작한 분야가 있다.
Data Science. 통계에서 시작해 기계학습과 알고리즘이 각광을 받기 시작하면서 과장된 면이 없진 않으나
어떤 현상에 대해 예측하고 그게 맞아들어갈 때 느끼는 신이 된 기분은 인간이라면 누구라도 거부할 수 없는 유혹 아닐까? 물론 관련된 직업수도 가파르게 증가하고 있어 어쩌면 나를 매너리즘에서 구해줄 동앗줄이 될 수도 있고.
해서 추천받은 학습사이트는 아래와 같다.
https://courses.edx.org/courses/course-v1:MITx+15.071x_3+1T2016/info
MIT에서 만든 과정이고 통계에 대한 배경지식이 없어도 따라하기만 하면 얼마든지 익힐 수 있다. 선택의 여지 없이 언어는 R이다. 만약 이 과정을 잘 끝내고 나면 Python도 한번 도전해볼까 싶고.
이 노트는 영어로 분산과 표준편차를 다시 공부하며 고군분투하는 기록이 될 것이다.
BASIC COMMEND
DATASET = read.csv("filename.csv") : CSV파일을 읽어들이기 위해 가장 많이 사용한 명령어
str(DATASET) : structure를 파악할 수 있음, observation, variables...
summary(DATASET) : 요약정보를 확인할 수 있음. 총 및 각 변수별 최소값, 평균값, 최대값 등등
mean : 평균, min : 최소값, max: 최대값, nrow : 행의 갯수, match[x] : x 에 해당하는 레이블을 찾아줌, name : variable name을 모두 표기
which.max(DATASET$variable) : 해당 변수의 최대값확인, 같은 방법으로 평균, 최소값도 구함
subset : 하위 세트를 만드는 명령어 DATASET2 = subset(DATASET, condition)
sd(DATASET$variable, na.rm=TRUE) : N/A 값을 지움
as : 클래스에 밀어넣음 as(object, Class, strict=TRUE, ext)
as.Date(strptime(mvt$Date, "%m/%d/%y %H:%M"))
as.numeric(USDA$Protein > mean(USDA$Protein, na.rm=TRUE))
table(DATASET$variable) : raw data를 테이블로 변환해서 표시
tapply(DATASET$variable1, DATASET$variable2, FUNCTION, na.rm=TRUE) : 변수1과 변수2의 FUNCTION을 테이블로 정리해 보여줌.
sort(table(DATASET$variable)) : 오름차순으로 테이블을 소팅함
is.na(x) : N/A 인 값 빼고.
jitter : 숫자에 노이즈를 더함 *
VISUALIZATION
plot(X variable, Y variable, xlab="X LABEL", ylab="Y LABEL", main="Title of Graph", col="red")
: 2차원 평면에 모든 값을 점으로 매핑, 트렌드를 보기 편함, 레이블, 타이틀, 컬러는 옵션
hist(X variable, xlab="X LABEL", main="Title of Graph", xlim= c(0,100), breaks=2000)
: 막대그래프, xlim은 x축 단위를 잘라 보기 편하게 보여주며 breaks은 각 그래프별 구분 기준값
boxplot(DATASET$Variable1~ DATASET$Variable2, main = "TITLE of Graph", ylab="Y LABEL")
: 분포를 박스로 보여줌. 메인 이하는 역시 옵션
lines(DATASET$Variable,col="red")
: 라인그래프, 컬러는 옵션
LINEAR REGRESSION
residuals : 잔차
SSE : Sum of Squared Errors(선형회귀모델과 오차의 넓이) SSE = sum(model1$residuals^2)
model1 = lm(independant variable ~ dependant variable1+dependant variable1, data=DATASET)
cor(DATASET$Variable1, DATASET$Variable1) : 두 변수의 correlation을 구함
SST : Sum of Squares Total (baseline모델과 오차의 넓이)
SST = sum((DATASET$Variable-mean(DATASET$Variable))^2)
R^2 = 1-SSE/SST
RMSE = sqrt(SSE/nrow(DATASET)) , 평균 제곱근편차
lm : linear model, MODELNAME = lm(independantVariable ~ dependentVariable, data=DATASET)
exp : exponential function