본문 바로가기
AI 관련/ADsP, ADP

ADSP 요약정리 - 1장 데이터 분석 개요 -분석환경 이해와 기본 사용법

by 팀장일기 2021. 9. 30.

제 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

    ② 테스트

    ③ 데이터 변환

    ④ 클러스터

    ⑤ 모드

 

  

댓글