본문 바로가기

2022 하계 모각코 캠프 (ADsP)

[모각코] 7/27 데이터 분석(3과목) + 스몰토크

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 게더타운인 느낌이었다..😝

(무려 수상자였던 혜림님 멋져🫶🏻)