제 3절 분석환경 이해와 기본사용법
- 데이터 분석은 SQL 수준의 교육과 달리 분석도구가 다양하고 표준이 없음.
SAS | SPSS | R | |
프로그램비용 | 유료 , 고가 | 유료, 고가 | 오픈소스 |
설치용량 | 대용량 | 대용량 | 모듈화로 간단 |
다양한 모듈지원 및 비용 | 별도 구매 | 별도 구매 | 오픈소스 |
최근 알고리즘 및 기술반영 | 느림 | 다소 느림 | 매우 빠름 |
학습자료 입수의 편의성 | 유료 도서위주 | 유료 도서 위주 | 공대 논문 및 자료 많음 |
질의를 위한 공개 커뮤니티 | NA | NA | 매우 활발 |
1. 분석환경의 이해
가. 통계패키지 R
- 오픈소스 프로그램으로 통계, 데이터 마이닝과 그래프를 위한 언어
- 다양한 최신 통계분석과 마이닝 기능을 제공
- 전 세계적으로 사용자들이 다양한 예제를 공유
- R의 특징
* 다양한 최신 통계 분석 및 마이닝 기능을 R 플랫폼에서 제공
* 다양한 최신 알고리즘을 제공해 다양한 시도 가능
* 기능들의 자동화가 비교적 쉬움
* 사용자들이 여러 예시를 공유
나. R 스튜디오
- 오픈소스이고 다양한 운영ㅊ제를 지원
- R 스튜디오는 메모리에 변수가 어떻게 되어 있는지 타입과 무엇인지를 볼 수 있고 , 스트립트 관리와 도큐먼테이션이 편하다.
- 메모리에 변수가 어떻게 돼있는지 타입이 무엇인지 볼 수 있고 스크립트 관리와 문서화가 편해 R studio 사용
- 래틀과 R의 장단점
래틀(Rattle) | R | |
장점 | 처음 접근하고 데이터를 다루는 것이 쉬움 | 유연하고 업그레이드 됨 |
단점 | 패키지의 정해진 기능 사용, 업그레이드가 제대로 안되면 통합성에서 문제 발생 | 코딩을 해야함 |
다. 데이터 소스 및 분석 IT 아키텍처
- 작업환경은 업무 규모와 본인에게 익숙한 환경이 무엇인지를 기준으로 선택
- 기업환경에서는 64bit 환경의 듀얼코어, 32GB RAM, 2TB 디스크, 리눅스 운영체제를 추천
* 가용 물리적 메모리 크기는 x86 64비트 시스템에서는 128TB가 한계
* 64비트 윈도우 운영체제에서는 8TB이 메모리까지 지원
2. 기본사용법
가. R언어와 문법
1) R 스튜디오 실행
- 스크립트 : R 명령어 입렷하는 창, 명령어를 실행할 때는 실행하려는 문장에 커서를 두고 컨트롤 + 엔터
- 콘솔 : 스크립트 창에서 실행한 명령문이 실행되는 것을 볼 수 있는 곳. 오류 있으면 에러 메시지 뜸. 명령어 직접 입력하면 저장 안돼 재 실행 불가
- 워크스페이스 : 할당된 변수와 데이터 나타남
- Search Results : 설치된 패키지와 help 등 볼 수 있음.
2) 변수와 벡터 생성
- 변수명 <- or = 임의값
- 생성확인 : 변수명 입력 또는 프린트 명령어 이용
①프린트
* print(변수명) : 변수의 값을 출력
② c() :벡터 생성
* c(값1,값2,....) :하나의 변수에 여러값을 할당.
-문자형 값은 ""써줘야 문자형 값으로 인식
-함수 내 연상가능
- 논리형 값 (TRUE,FALSE)은 ""필요 없음
- 변수 결합 가능
3) 수열
* n:m :n, n±2,....,m
* seq(from = 시작점 to = 끝점, by = 간격) : 일정한 간격으로 숫자를 나열
* seq(from = 시작점 to = 끝점, length= 길이) : 값의 길이만큼 숫자 나열
* rep(반복할 내용, 반복수): 같은 값의 단순 반복
- rep(1,times= 5) : 벡터값 5번 반복 (1 1 1 1 1)
- rep(1:2, each= 2) : 각각 2번씩 반복 (1 1 2 2)
4) 데이터 유형과 객체
① Numeric : 숫자형. integer (정수) , double(소수점 포함)
② Charcter : 문자형. "" 표시 ex) "a" , "abc"
③ Paste("붙일 내용","붙일 내용",sep="") : 데이터 결합
* 기본적으로 공간 삽입됨. 자동으로 변수명 만들 때 유용 (paste(A,10,sep="") 결과 > 붙일내용 sep 붙일 내용
④ Substr(문자열, 시작, 끝) : 시작과 끝에 해당하는 하위 문자열 추출
⑤ 논리값 : True(T), False(F)
⑥ Matrix : 벡터에 차원 정해주면 행렬로 변환 가능
* matrix(이름, 행 수 , 열 수 ) ex) matrix(theData,4,5), matrix(1:20,4,5)
- row 먼저 채우고 colmn에 값 들어감
* dim(행렬) : 행렬의 행과 열 수 를 반환
* diag(행렬) : 행렬의 대각선에 있는 값을 반환
* t(행렬) : 전치행렬
- 행렬 곱 : 행렬 %*% 행렬
* colnames(행렬) : 열 네임을 조회
- 열 네임 붙이기 : colname(mat)<-("IBM',"MSFT","GOOG")
* rownames(행렬) : 행 네임을 조회
- 행 네임 붙이기 : rownames(mat) <-("IBM","MSFT")
* 행렬조회 : 행렬이름 입력
- 행 조회 : GODFUFDLFMA [#,]
- 열 조회 : 행렬이름 [,#]
⑦list(, , , ....)
-list 만들 땐 list 원소들에 태그 부여해야함. 서로 다른 데이터 오브젝트 결합 가능
- 각 요소 확인 : 리스트 이름 $ 요소 (or 리스트이름 [[#]])
unlist() : 리스트 형식의 데이터를 벡터로 변환
* 벡터와 리스트의 차이
: 벡터에서 모든 원소는 같은 모드, 리스ㄴ트는 원소들이 다른 모드여도 ok
⑧ 데이터 프레임 : 관찰된 결과( observation)로 된 테이블, 행렬x
- 가장 자주 사용되고 편리한 데이터 처리방식. 모든 측면에서 매우 직관적
* data.frame(, , , ...) : 여러 열로 정리된 데이터를 데이터 프레임으로 조립
* rbind(dfrm1,dfrm2) : 두 데이터프레임의 행 쌓기
* cbind(dfrm1,dfrm2) : 두 데이터 플임의 열 이어 붙이기
* subset(dataframe, select = 열 이름) 데이터 세트에서 조건에 맞는 내용 조회 ( 리스트와 벡터에서도 선택가능)
* with(dataframe, 열 이름)
* merge(dfq, dfw,by="df1과 df2의 공통된 열이름") : 행 정렬 안되거낭 동일한 순서로 안나타나도 상관없음
* grep(조회할 문자패턴, data)
⑨ 벡터에 있는 원소 선택
- 벡터 내 값 조회에 유용. 대괄호와 간단한 인덱스 사용
- 벡터 값에서 특정 값 가져오기 : [],c() 함수 이용
- [] 안에 조건문 넣고 조건 만족하는 값 가져올 수 있음 . &,+
- 이름으로 원소 선택 가능
⑩자료형 데이터 구조 변환 : 데이터 구조를 다른 구조로 바꾸고 싶을 때 변환 적용 안되면 NA값 나타남
* as.data.frame(x) : 데이터 프레임 형식으로 변환
* as. list(x) : 리스트 형식으로 변환
* as. matrix(x) : 행렬형식으로 변환
* as. vector(x) : 벡터 형식으로 변환
* as. factor(x) : 팩터(factor) 형식으로 변환
* as. numeric(논리값) : FALSE =0 TRUE = 1
* as. charater(숫자) : 숫자를 문자로
⑪ 문자열을날자로 변환
- 2013-08-13처럼 문자열 표현으로 도니날짜를 Date 객체로 변환
* Sys.Date() : 현재 날짜를 반환
* as. Date() : 날짜 객체로 변환 (yyyy-mm-dd)
* format : 날짜 스타일 변환 ("%m/%d/%y" -> 08/13/2013")
⑫ 날짜를 문자열로 변환
* format(날짜, 포맷)
* as.character(Sys.Date())
* format(Sys.Date(),'%a') : 요일 조회 -> 월
* format(Sys.Date(),'%b') : 축약 월 이름 조회 -> 3
* format(Sys.Date(),'%B') : 전체 월 이름 조회 -> 3월
* format(Sys.Date(),'%d') : 두자리 숫자로 된 일 조회 -> 17
* format(Sys.Date(),'%m') : 두자리 숫자로 된 월 조회 -> 03
* format(Sys.Date(),'%y') : 두자리 숫자로 된 연도 조회 ->14
* format(Sys.Date(),'%Y') : 네자리 숫자로 된연도 조회 ->2014
⑬ Missing : missing 데이터 (/0,infinite)
⑭ 벡터의 기본 연산
* mean() : 평균
* sum() : 합
* average() : 평균
* median() : 중앙값
* log() : 로그
* sd() : 표준편차
* var(): 분산
* cov() : 공분산
* cor() : 상관계수 (-1≤rxy≤1)
* length(): 변수의 길이값 반환
* sapply(c,log) : 벡터 c에 log 적용
5) 알아두면 유용한 기타 함수들
* write.csv (변수 이름, "지정할 파일이름.csv") : 변수를 csv 파일로 저장
* read.csv ("저장된 파일이름.csv") :csv파일을 R 로 읽음
* save(변수이름, file-"지정할 데이터 파일이름. Rdata") : R 데이터파일로 저장
* load("저장된 파일으름. Rdata") : R 데이터를 읽어 들이는 방법
* rm() : 데이터 삭제, 선택 변수만 삭제
* rm(list=Is(all=TRUE)) : 모든 변수를 삭제
* data()
* summary() ; 한 번에 간단한 통계량들을 데이터 세트 열마다 요약
* head() : 데이터 세트의 6번째 행까지 조회
* install.packages("패키지 이름") : R 패키지 설치
* library (패키지이름) : R에 패키지를 불러오는 함수
* vignett("알고 싶은 package 이름") 정보 간단 요약본
* q() : 작업 종료시 작업환경 변수 저장여부 물음
* setwd("~/") : R데이터와 파일등을 로드하거나 저장할 때 워킹 디렉터리 지정
* ? 명령어 : 도움말 로드
* ?? 명령어 : 명령어 검색
3. 래틀
- R을 GUI환경에 편리하게 사용할 수 있게 도와주는 패키지
가.래틀 설치
나. 래틀 기본사용법
다. 래틀에서 데이터 불러오기
1) 라이브러리의 데이터 불러오기
2) csv 파일 불러오기
① data Explore
② 테스트
③ 데이터 변환
④ 클러스터
⑤ 모드
'AI 관련 > ADsP, ADP' 카테고리의 다른 글
ADSP 요약정리 - 2장 통계분석 - 기초통계분석 (0) | 2021.10.01 |
---|---|
ADSP 요약정리 - 2장 통계분석 - 통계분석의 이해 (0) | 2021.10.01 |
ADSP 요약정리 - 1장 데이터 분석 개요 - 데이터 분석 기법의 이해 (0) | 2021.09.29 |
ADSP 요약정리 - 1장 데이터 분석 개요 - 데이터 분석 프로세스 (0) | 2021.09.29 |
ADSP 요약정리 - 2장 분석 마스터 플랜 - 분석 거버넌스 체계 (0) | 2021.09.28 |
댓글