1장. 데이터 분석 개요
1절. 데이터 분석 기법의 이해
1. 데이터 처리
→ 활용
: 운영 시스템에 직접 접근해 데이터를 활용하는 것은 매우 위험한 일이므로 거의 이루어지고 있지 않음.
: 스테이징 영역의 데이터는 운영시스템에서 임시로 저장된 데이터이기 때문에 가급적 클린징 영역인 ODS에서 데이터의 전처리를 해서 DW나 DM과 결합하여 활용하는 것이 가장 이상적임
최종 데이터 구조로 가공
→ 데이터 마이닝 분류
: 분류값과 입력변수들을 연관시켜 인구통계, 요약변수, 파생변수 등을 산출함
→ 정형화된 패턴 처리
: 비정형 데이터나 소셜 데이터는 정형화한 패턴으로 처리해야 함
1) 비정형 데이터 - DBMS 에 저장됐다가 텍스트 마이닝을 거쳐 데이터 마트와 통합함
2) 관계형 데이터 - DBMS 에 저장되어 사회 신경망분석을 거쳐 분석결과 통계값이 마트와 통합되어 활용됨
2. 시각화 (시각화 그래프)
→ 시각화는 가장 낮은 수준의 분석이지만, 잘 사용하면 복잡한 분석보다도 효율적
→ 대용량 데이터를 다루는 빅데이터 분석에서 시각화는 필수
→ 탐색적 분석을 할 때 필수
→ SNA 분석(사회연결망 분석)을 할 때 자주 활용됨
3. 공간분석 (GIS)
→ 공간적 차원과 관련된 속성들을 시각화하는 분석
→ 크기, 모양, 선 굵기 등으로 구분하여 인사이트를 얻음
4. 탐색적 자료 분석 (EDA)
: 특이한 점이나 의미 있는 사실을 도출하고 분석의 최종 목적을 달성해가는 과정
: 데이터 특징과 내재하는 구조적 관계를 알아내기 위한 기법들의 총칭
→ EDA의 4가지 주제 - 저항성의 강조, 잔차 계산, 자료변수의 재표현, 그래프를 통한 현시성
→ 탐색적 분석의 효율 예 - 모형개발 프로세스(KDD, CRISP-DM)의 데이터 이해 단계와 변수 생성 단계, 변수선택 단계에서 활용됨
5. 통계분석
→ 통계
: 어떤 현상을 종합적으로 한눈에 알아보기 쉽게 일정한 체계에 따라 숫자와 표, 그림 형태로 나타내는 것
→ 기술 통계
: 모집단으로부터 표본을 추출하고 표본이 가지고 있는 정보를 쉽게 파악할 수 있도록 데이터를 정리하거나 요약하기 위해 하나의 숫자 또는 그래프의 형태로 표현하는 절차
→ 추측(추론) 통계
: 모집단으로부터 추출된 표본의 표본통계량으로부터 모집단의 특성인 모수에 관해 통계적으로 추론하는 절차
활용분야
→ 정부의 경제정책 수립과 평가의 근거자료
→ 농업, 의학, 경영, 스포츠 등
6. 데이터 마이닝
: 대용량의 자료로부터 정보를 요약하고 미래에 대한 예측을 목표로 자료에 존재하는 관계, 패턴, 규칙 등을 탐색하고 이를 모형화함으로써 이전에 알려지지 않은 유용한 지식을 추출하는 분석방법
→ 방법론
: 데이터 베이스에서의 지식 탐색-데이터웨어하우스에서 데이터마트를 생성하면서 각 데이터들의 속성을 사전분석을 통해 지식을 얻는 방법
: 기계학습-인공지능의 한 분야로, 컴퓨터가 학습할 수 있도록 알고리즘과 기술을 개발하는 분야 (예:인공신경망, 의사결정나무, 클러스터링, 베이지안 분류, SVM 등)
: 패턴인식-원자료를 이용해서 사전지식과 패턴에서 추출된 통계 정보를 기반으로 자료 또는 패턴을 분류하는 방법 (예:장바구니분석, 연관규칙 등)
→ 활용분야
: 데이터베이스 마케팅, 신용평가 및 조기경보시스템, 생물정보학, 텍스트 마이닝
2장. R프로그래밍 기초
1절. R 소개
1. R의 탄생
→ 오픈소스 프로그램, 통계/데이터마이닝과 그래프를 위한 언어
→ 다양한 최신 통계분석과 마이닝 기능 제공
→ 세계적으로 많은 사용자들이 다양한 예제 공유
→ 다양한 기능을 지원하는 많은 패키지
2. R의 특징
→ 오픈소스 프로그램
: 사용자 커뮤니티 도움 요청이 쉬우며 많은 패키지가 수시로 업데이트됨
→ 그래픽 및 성능
: 프로그래밍이나 그래픽 측면 등 대부분의 주요 특징들에서 상용 프로그램과 대등하거나 월등함
→ 시스템 데이터 저장 방식
: 각 세션 사이마다 시스템에 데이터셋을 저장하므로, 매번 데이터를 로딩할 필요가 없고 명령어 스토리도 저장 가능
→ 모든 운영체제
: 윈도우, 맥, 리눅스 운영체제에서 사용 가능
→ 표준 플랫폼
: S 통계 언어를 기반으로 구현, R/S 플랫폼은 통계전문가들의 사실상의 표준 플랫폼
→ 객체지향언어이며 함수형 언어
: 통계 기능 뿐 아니라 일반 프로그래밍 언어처럼 자동화하거나 새로운 함수를 생성하여 사용 가능
객체 지향 언어의 특징
: SAS, SPSS에서 회귀분석시, 화면에 결과가 산더미로 나오기 때문에 분석 결과를 활용하기 위해서는 추가로 프로그래밍을 하거나 별도의 작업이 필요함
: R은 추정계수, 표준오차, 잔차 등 결과값을 객체에 저장하여 필요한 부분을 호출하여 쉽게 활용이 가능함
함수형 언어 특징
: 깔끔하고 단축된 코드
: 빠른 코드 수행 속도
: 단순한 코드로 디버깅 노력 감소
: 병렬 프로그래밍으로의 전환이 더욱 용이
2절. R기초 - 1
1. 통계 패키지 R
패키지란?
R함수와 데이터 및 컴파일된 코드들의 모임
2. 변수와 벡터 생성
→ R 데이터 유형과 객체
유형 | 모드 |
숫자 | integer, double |
논리값 | True, False |
문자 | "a", "abc" |
2절. R기초 - 2
1. R 기초 중에 기초
기능 | R코드 | 비고 |
출력하기 | → print() : 출력형식을 지정할 필요 없음, 한 번에 하나의 객체만 출력 → cat() : 여러 항목을 묶어서 연결된 결과로 출력, 복합적 데이터 구조(행렬, list 등)를 출력할 수 없음 |
커맨드 프롬프트 변수나 표현식을 입력 예시) print("a") |
변수에 값 할당하기 | <-, <<-, =, -> | |
변수 목록보기 | Is(), Is.str() | |
변수 삭제하기 | rm() | rm(list=Is()): 모든 변수를 삭제할 때 사용 |
벡터 생성하기 | c() | 벡터의 원소 중 하나라도 문자가 있으면 모든 원소의 모드는 문자형태로 변환됨 |
R함수 정의하기 | function(매개변수, ...) {expr, ...} | <expr의 특징> 지역변수: 단순히 값을 대입하기만 하면 지역변수로 생성되고, 함수가 종료되면 지역변수는 삭제 됨 조건부 실행: if 문 반복 실행: for, while, repeat문 전역변수: <<- 를 사용하여 전역변수로 지정할 수 있지만 추천하지는 않는 방법 |
2. R 프로그램 소개
기능 | R코드 | 비고 |
데이터 할당 | a<-1, a=1 | |
화면 프린트 | a, print(a) | print함수 |
결합 | x<-c(1, 2, 3, 4) x<-c(x, y, z) x<-c("fee", "fie", "fun") |
C 함수는 문자, 숫자, 논리값, 변수를 모두 결합 가능하며,벡터와 데이터셋 생성 가능 |
수열 | 1:5 9:-2 seq(from=0, to=20, by=2) seq(from=0, to=20, length.out=5) |
콜론(:), seq 함수를 사용하여 시작값에서 최종값까지의 연속적인 숫자 생성, seq 함수는 간격과 결과값의 길이 제한 가능 |
반복 | rep(1, time=5) rep(1:4, each=2), rep(c, each=2) |
rep 함수는 숫자나 변수의 값들을 time 인자에 지정한 횟수만큼 반복 |
문자 붙이기 | A<-paste("a", "b", "c", sep="-") paste(Am c("e", "f")), paste(A, 10, sep="") |
paste 함수는 문자열을 sep 인자에 지정한 구분자로 연결시켜 줌 |
문자열 추출 | substr("Bigdataanalysis", 1, 4) | substr (문자열, 시작점, 끝점) 함수는 문자열의 특정부분을 추출 가능 |
논리값 | a<-True, a<-T | T도 True로 인식 |
논리 연산자 | ==, !=, <, <=, >, >= | |
벡터의 원소 선택하기 | V[n]: 선택하고자 하는 자리수 V[-n] 제외하고자 하는 자리수 |
n은 원소의 자리수, V는 벡터의 이름 |
3. 벡터의 연산
연산자 우선순위 | 뜻 | 표현방법 |
[ [[ | 인덱스 | a[1] |
$ | 요소 뽑아내기, 슬롯 뽑아내기 | a$coef |
: | 수열 생성 | 1:10 |
%any% | 특수 연산자 | %/% 나눗셈 몫, %% 나눗셈 나머지, %*% 행렬의 곱 |
~ | 식(formula) | Im(log(brain)~log(body), data=Animals) |
->, ->> | 오른쪽 대입 | 3->a |
? | 도움말 | ?lm |
4. 벡터의 기초 통계
기능 | R코드 | 비고 |
평균 | mean(변수) | 변수의 평균 산출 |
합계 | sum(변수) | 변수의 합계 산출 |
중앙값 | median(변수) | 변수의 중앙값 산출 |
로그 | log(변수) | 변수의 로그값 산출 |
표준편차 | sd(변수) | 변수의 표준편차 산출 |
분산 | var(변수) | 변수의 분산 산출 |
공분산 | cov(변수1, 변수2) | 변수의 공분산 산출 |
상관계수 | cor(변수1, 변수2) | 변수간 상관계수 산출 |
변수의 길이 값 | length(변수) | 변수간 길이를 값으로 출력 |
5. 프로그래밍시 자주하는 실수
→ 패키지를 불러오고 library()나 require()를 수행할 것
→ 인자의 개수를 정확히 사용할 것 등
3절. 입력과 출력
1. 데이터 분석 과정
→ 분석자가 분석 목적에 맞는 적절한 분석 방법론을 서낵해서 정확한 분석을 통해 얻은 결과를 통찰력을 가지고 해석함으로써 분석 과정을 마치게 됨
→ 이렇게 데이터를 분석하기 위해서는 분석자가 분석을 위해 설계된 방향으로 데이터를 정확하게 입력받는 것에서부터 시작될 수 있음
→ 입력된 데이터는 다양한 전처리 작업을 거쳐 분석이 가능한 형태로 재정리 됨 (데이터 핸들링)
→ 분석된 결과를 이해하기 쉽고 잘 해석할 수 있도록 생산하는 부분을 데이터 출력이라고 할 수 있음
→ 출력된 결과는 보고서의 형태로 정리되어 최종 의사결정자와 고객에게 전달되게 됨으로써 통계분석 과정은 종료됨
2. R에서의 데이터 입력과 출력
R에서 다룰 수 있는 파일 타입
Tab-delimited text, Comma-separated text, Excel file, Json file, HTML/XML file, Database, Statistical SW's file
기능 | R코드 | 비고 |
기보드로 데이터를 입력 | 1) 데이터 양이 적은 경우: 컴바인 함수를 사용하여 직접 입력, c() 2) 데이터 편집기 활용 : 빈 프레임 데이터 생성 후 편집기를 불러와서 편집하고 데이터 프레임에 덮어 씌우기 |
|
출력할 내용의 자리수 정의 | R의 부동소수점 표현 : 7자리로 표시 |
예) 3.141593, 314.1593 |
파일에 출력하기 | cat() sink("파일이름") 출력할 내용 sink() |
|
파일 목록 보기 | list.file() | |
Cannot Open File 해결하기 | 역슬래쉬를 슬래쉬로 바꿈 역슬래쉬를 쌍으로 표현함 |
|
고정 자리수 데이터 파일 읽기 | read.fwf | |
테이블로 된 데이터 파일 읽기 | read.table | |
CSV 데이터 파일 읽기 | read.csv | |
CSV 데이터 파일로 출력 | write.csv | |
웹에서 데이터 파일을 읽어올 때 | read.csv | |
html에서 데이블 읽어올 때 | library(XML) | |
복잡한 구조의 파일 (웹 테이블) 읽기 | lines<-readLines("a.txt", n=num) |
+ 스몰 토크 (동아리와 수업에서 만난 사람덜 vs. 데청캠에서 만난 사람덜)
오늘 13팀과 세로로 서서 순서대로 자기소개 했는데 뭔가 쪼로록 서있는 게 귀엽다 후후
자기소개 분명히 들었는데 기억이 하나도 안 나는 1인.......(안 들었나 봄.. 죄삼다..)
비대면이어도 낯을 가리는데 13팀에 아는 사람이 있어서 그나마 덜 가렸던 듯
13팀은 이번 데이터 청년 캠퍼스에 참가해 진행 중이라고 하는데
마침 혜림님이 데청캠 경험자여서, 데청캠 선배와의 만남 in 게더타운인 느낌이었다..😝
(무려 수상자였던 혜림님 멋져🫶🏻)
'2022 하계 모각코 캠프 (ADsP)' 카테고리의 다른 글
[모각코] 8/6 3과목 3장 실전 문제 풀기 - 오답노트 (0) | 2022.08.07 |
---|---|
[모각코] 8/3 Day 12~14 (3과목) (0) | 2022.08.03 |
[모각코] 7/30 2과목 실전 문제 풀기 (0) | 2022.07.31 |
[모각코] 7/23 데이터 분석 기획 (2과목) (0) | 2022.07.23 |
[모각코] 7/20 첫 만남, 앞으로의 계획 그리고 우리 (0) | 2022.07.21 |