데이터 과학 : 데이터로부터 유용한 정보와 통찰을 끄집어내고 합리적인 의사결정을 돕는 현대적인 학문 분야
정형 데이터 : 출석부, 대학의 학사와 교무 행정 데이터 등등
비정형 데이터 : 이메일이나 편지, 영상, 동영상. 소리 등
데이터 과학의 절차
데이터 수집 → 탐색적 데이터 분석 →모델링
•
데이터 수집 : 주어진 문제와 현장에 맞는 수집 계획 수립, 실제 현장에서 수집하고 기록
•
탐색적 데이터 분석 (EDA)
◦
변수 값의 분포, 변수 사이의 상관 관계 등을 살펴 데이터 특성을 파악함
◦
요약 통계량 계산, 시각화 등
◦
데이터가 부족하다 판단되면 데이터 수집 단계로 돌아가 추가 수집
•
모델링
◦
데이터를 가장 잘 설명하는 모델을 찾는 과정
◦
모델은 변수 사이의 관계를 수학식으로 표현
컴퓨팅 사고 : 사람이 컴퓨터가 문제를 분석하고 해결하는 방식처럼 생각하는 것으로, 복잡한 문제를 단순화하고 이를 논리적이면서 효율적으로 해결하는 사고 과정
프로그래밍 : 컴퓨터가 처리할 수 있도록 문제 해결 절차를 체계적으로 서술하는 과정이며, 컴퓨터에서 실행할 소프트웨어를 만드는 과정
하드웨어 : 컴퓨터 본체, 키보드, 모니터 등등
소프트웨어 : 하드웨어의 기능을 원활하게 수행하기 위한 명령들의 집합
프로그램 : 컴퓨터에게 일을 시키기 위한 작업지시서
R언어 명령문
A ← 51:80 = A라는 변수에 51부터 80 사이의 수를 저장
print(A) : A 출력
나눗셈 : /
나눗셈의 나머지 : %%
산술 연산은 연산자 외에도 함수를 사용하여 계산 가능
ex) log(10), sqrt(25), max(5,3,2)
주석 : # 기호로 시작
패키지 : 함수들을 기능별로 묶어놓은 꾸러미
로딩 : 패키지를 R에서 사용할 수 있도록 불러오는 작업
패키치 설치하여 사용하려면 install, load 필요
install.packages(’cowsay’)
library(cowsay)
인수 : 입력값 (매개변수)에 대한 설명
값 : 함수 실행시 반환되는 결과 값
예제 : 실제로 작동하는 예제 코드
자료형 : 변수에 저장할 수 있는 값의 종류
cat(’합계:’,total) : 문자와 변수의 값을 합쳐서 출력 가능
벡터 : R에서 제공하는 여러 개의 값을 한꺼번에 저장하는 기능, 1차원 배열
x ← c(10,20,30) : x라는 벡터에 10,20,30 할당
y ← seq(1,100,3) : 1부터 100까지 3의 간격으로 y에 할당
z ← rep(1, times=5) : 1을 5번 반복하여 z에 할당
ab라는 벡터의 특정 원소값을 알아낼 때 : ab[5] - 5번째에 있는 원소 알아내기
ab[1:3] : 1부터 3까지
ab[seq[1,5,2]] : 1부터 5까지 2씩 간격을 두고
ab[-2] : 2번째 원소만 빼고 출력
ab[’w’] : 원소를 이름으로 출력
ab[1] ← 7 : 벡터에 저장된 첫번째 원소를 7로 변경
sort(ab) : 벡터를 오름차순으로 정렬
sort(ab,TRUE) : 내림차순으로 정렬
양적 자료 : 두 개 이상의 서로 다른 값을 갖는 자료 (= 연속형 자료)
•
이산형 자료 : 자녀 수, 제품 수 , 인원 수 등
•
연속형 자료 : 키, 몸무게, 길이, 무게 등
질적 자료 : 직업 , 성별, 혈액형과 같이 숫자가 아닌 형태의 자료 (= 범주형 자료)
•
성별, 거주지역, 품종 등
•
범주 또는 그룹으로 구분할 수 있는 값으로 구성된 자료
1차원 자료, 2차원 자료
1차원 자료 : 벡터(숫자), 팩터(범주), 리스트
2차원 자료 : 매트릭스(숫자), 데이터프레임(문자 + 숫자)
범주형 자료 : 분류의 의미를 갖는 값들로 구성된 자료로, 보통 문자로 표현되고 산술 연산을 적용할 수 없음
수치형 자료 : 값들이 크기를 가지며 산술 연산이 가능함
벡터 연산
vector ← c(1,2,3,4,5)
vector - 5 = [-4,-3,-2,-1, 0]
벡터와 벡터 간의 연산은 벡터 간 대응되는 위치에 있는 값들끼리의 연산으로 바뀌어 실행
숫자 벡터와 문자 벡터를 c()로 결합하면 숫자값이 문자로 변환되어 결합
매트릭스와 데이터프레임
매트릭스와 데이터프레임은 2차원 자료를 저장하기 위한 대표적인 자료구조
•
1차원 자료 : 학생들의 몸무게와 같이 단일 주제의 값들을 모아 놓은 것
•
2차원 자료 : 키, 몸무게, 나이와 같이 한 사람에 대한 여러 주제로 데이터를 수집한 형태
매트릭스와 데이터프레임의 차이 : 매트릭스에 저장도니는 모든 자료의 종류가 동일한 반면 데이터프레임에는 서로 다른 종류의 데이터가 저장
2차원 자료의 저장
테이블에서 가로줄 방향은 행, 또는 관측값
세로줄 방향은 열, 컬럼, 변수
가로와 세로가 교차되는 것을 셀이라고 함
매트릭스의 정의
매트릭스 : 2차원 테이블 형태의 자료 구조
•
매트릭스의 모든 셀에 저장되는 값은 동일한 종류이어야 함
•
매트릭스는 보통 숫자로만 구성된 2차원 자료를 저장하고 처리하는 데 이용
x <- 1:4 # 벡터 x 생성
y <- 5:8 # 벡터 y 생성
z <- matrix(1:20, nrow=4, ncol=5) # 매트릭스 z 생성
m1 <- cbind(x,y) # x와 y를 열 방향으로 결합하여 매트릭스 생성
m2 <- rbind(x,y) # x와 y를 행 방향으로 결합하여 매트릭스 생성
m3 <- rbind(m2,x) # 매트릭스 m2와 벡터 x를 행 방향으로 결합
m4 <- cbind(z,x) # 매트릭스 z 와 벡터 x를 열 방향으로 결합
R
복사
2차원 상에서 위치를 지정하려면 인덱스 2개 필요
몇 번째 행, 몇 번째 열 을 지정하는 2개의 인덱스 값 필요
z[2.1:3] : 2행의 값 중 1~3열에 있는 값
z[.c(1,4)] : 1,4열에 있는 모든 값
데이터프레임의 개념
숫자형 벡터, 문자형 벡터 등 서로 다른 형태의 데이터를 2차원 데이터 테이블 형태로 묶어서 저장하고 분석하는 데 사용되는 자료
외관상으로는 매트릭스와 차이가 없지만 매트릭스에 저장되는 모든 값들이 동일한 자료형인 것과는 달리 데이터 프레임에는 서로 다른 자료형의 값들이 함께 저장
city <- c("Seoul","Tokyo","Washington") # 문자로 이루어진 벡터
rank <- c(1,3,2) # 숫자로 이루어진 벡터
city.info <- data.frame(city,rank) # 데이터프레임 생성
city.info # city.info의 내용 출력
R
복사
•
문자로 이루어진 city라는 벡터와 숫자로 이루어진 rank라는 벡터 생성
•
두 개의 벡터를 data.frame()함수로 묶어 city.info라는 데이터 프레임을 생성
•
벡터들이 열 방향으로 결합됨
iris 데이터셋
•
iris는 150그루의 붓꽃에 대해 4개 분야의 측정 데이터와 품종 정보를 결합하여 만든 데이터셋
•
iris의 내용을 출력하는 방법은 iris라고 입력
•
4개의 숫자형 열과 1개의 문자형 열이 결합되어 만들어진 데이터프레임
데이터셋의 기본 정보
•
dla(iris) : 행과 열의 개수 보이기
•
nrow(iris) : 행의 개수 보이기
•
ncol(iris) : 열의 개수 보이기
•
colnames(iris) : 열 이름 보이기, names()함수와 결과 동일
•
head(iris) : 데이터셋의 앞부분 일부 보기
•
tail(iris) : 데이터셋의 뒷부분 일부 보기
•
str(iris) : 데이터셋 요약 정보 보기
•
iris(,5) : 품종 데이터 보기
•
levels(iris][,5]) : 품종의 종류 보기
•
table(iris[,”Species”]) : 품종의 종류별 행의 개수 세기
•
colSums(iris[,-5]) : 열별 합계
•
colMeans(iris[,-5]) : 열별 평균
•
rowSums(iris[,-5]) : 행별 합계
•
rowMeans(iris[,-5]) : 행별 평균
t() : 헹과 열 방향 변환
subset(데이터셋이름, 조건) : 조건에 맞는 값 찾기
a;b : a와 b를 나란히 한줄로 출력하게 함
매트릭스와 데이터프레임의 자료구조 확인하기
calss(iris): iris 데이터셋의 자료구조 확인
is.matrix(iris) : 데이터셋이 매트릭스인지 확인하는 함수
is.data.frame(iris) : 데이터셋이 데이터프레임인지 확인하는 함수
is → as로 바꾸면 변환 가능
데이터 입출력
1.
데이터 처리 과정 : 데이터 입력 → 정보 추출 → 처리 결과 출력
console로 처리 결과 출력 : print(), cat()
2.
변수로 데이터 입력하고 파일로 출력하는 방법
파일로 처리 결과 출력, sink(’파일명’, append = T)
3.
입력 화면을 통해서 데이터 입력하고 콘솔로 출력
install.packages('svDialogs') # 패키지 설치
library(svDialogs)
user.input <- dlgInput('Input income')$res
user.input
as.numeric() = 문자 데이터를 숫자 데이터로 변경
작업 폴더 관련 함수