본문 바로가기

Computer Science/Machine Learning

데이터 사이언스 입문

더보기

*시작에 앞서 세 가지 프로그램의 설치가 필요합니다.*

1. Anaconda - 파이썬과 데이터 분석에 필요한 각종 도구를 포함하고 있습니다.

2. Chrome - 데이터 분석이 이루어지는 주피터 노트북을 실행합니다.

3. Python - 파이썬 코드를 실행할 수 있는 환경을 구성해 줍니다.

 

 

이번 포스트에서는 데이터 사이언스에 대해 정의하고, 앞으로의 포스팅 동안 공부할 범위에 대해 이해합니다.

이 과정에서 Feature Engineering에 대해 학습합니다.


 

Backgrounds - 데이터 분석 과정에 대하여

 

데이터 분석의 과정 : 문제 탐색 ⇒ Feature Engineering ⇒ 모델 수립 ⇒ 모델 검증 ⇒ 모델 적용

 

문제를 찾는 것은 개발자의 몫입니다. 찾은 문제를 분석하고 해결을 위한 구체적인 방법을 제시하는 능력을 키우기 위해 머신러닝을 배웁니다. 오늘 포스팅은 그 첫 걸음이 되겠습니다.

 

실제로 데이터 분석을 시행하는 코드는 길지 않습니다. 그 이유는 파이썬에 수많은 사람들의 노력이 담긴 도구들이 무료로 배포되어 있기 때문입니다. 따라서 가장 많이 다뤄지는 코드들에 대해 배우고 그 의미를 이해해 보겠습니다.

 

데이터 사이언스란?

 

많은 전문가들이 내리는 데이터 사이언스에 대한 정의는 제각각입니다. 앞으로 이 포스팅에서 배워나갈 데이터 사이언스는 보다 넓은 개념으로서, 전통적인 데이터 분석 + 머신러닝 + 각종 소프트웨어 툴 활용 + 나의 전공 영역지식 활용 이라고 이해하시면 되겠습니다. 그 중 '머신러닝'을 활용하기 위해 배워나가 보겠습니다.

 

더보기

* 머신러닝 : 기계에게 데이터를 학습시켜 그 속에 숨겨진 일련의 규칙성을 찾아내고 이를 통해 미래를 예측하거나 분류, 인식하는데 이용함, 경험(E)을 학습하여 Task(T)의 성능(P)가 개선되도록 하는 컴퓨터 프로그램

* 활용분야 : 스팸 필터링, 기상 예측, 고객 분석, 성향 추천 등 예측이 중시되는 모든 분야

* 딥러닝과의 차이점 : 딥러닝은 인공 신경망을 이용하며 데이터 전체를 학습해 보다 어려운 문제 해결에 사용됩니다. 머신러닝의 경우 인간이 미리 정제된 데이터를 제공, 딥러닝은 그 특징들을 스스로 찾아감.

* 딥러닝이 아닌 머신러닝을 배우는 이유? : 딥러닝은 더 어렵고 설계하는데 많은 시간이 걸리며, 고성능의 장비가 있어야 효과를 볼 수 있습니다. 우리가 풀고자 하는 문제는 대부분 머신러닝으로도 해결이 가능합니다.

 

 

 

기초 예제 : 타이타닉 생존자 찾기 문제

 

 

타이타닉 호에 탑승한 승객들의 데이털르 받아 각 승객들의 생존을 판단하는 Kaggle의 대표적인 문제입니다.

 

 

엑셀의 Pivot Table

엑셀은 다들 한번씩은 다뤄보셨을 microsoft 프로그램인데요. 그 중 Pivot Table은 시트의 데이터들을 필터링하고 새로 정렬, 재편성, 계산, 요약 등의 기능을 제공해 정보를 쉽게 파악할 수 있도록 도와줍니다.

2020/06/02 - [et cetera] - Excel Pivot Tabled

 

Excel Pivot Table

컴활 따기 귀찮아서 엑셀 실력은 사실 거의 과제용 실력이 전부이지만 .. 피벗 테이블에 대해 간단히 배워보겠습니다. 예제 파일은 kaggle의 타이타닉 승선 승객 명단을 사용했습니다. 피벗 테이��

273k.tistory.com

이전 게시글에서 피벗 테이블에 대해 간단한 문제들을 풀어보았습니다. 게시글이 너무 길어질 것 같아 링크 답니다!

 

 


Feature Engineering with Pivot Table

 

Feature Engineering이란, 학습하기 전에 데이터의 특성을 잘 이해하고 반영하기 위해 특징을 선택하고, 추출해 내는 과정입니다. 즉 컴퓨터가 이해하기 쉽게 데이터를 가공하는 것입니다. 이번 게시글에서는 간단한 엑셀을 통해 Feature Engineering에 대해 이해해 보겠습니다. 이 과정은 데이터 분석에서 가장 중요한 단계입니다!

 

 

1. 특징 선택 

* 분석 목표 : 승객이 생존/사망 여부 예측하기

* 특징 선택 : 각 특징별 중요도를 매기고 - 큰 영향을 줄 수 있는 특징을 선별합니다.
이전 엑셀 게시글에서 대략 성별, 항구, 나이, 티켓 등급 등으로 정리 해보았습니다.

 

 

2. 특징 생성

* 분석 목표 : 승객이 생존/사망 여부 예측하기

* 특징 생성 : Feature Engineering의 대부분을 차지하는 작업입니다. 주어진 데이터를 이용해 새로운 특성을 조합, 분리하는 과정을 거쳐 새로운 특성(Feature)을 만들어 내는 작업입니다.

- 데이터를 꼼꼼히 살펴보면 다음의 문제가 있습니다.
   1. Age의 종류가 너무 많아 통계가 어려움⇒ 범위를 묶어 해결 / Age2 열을 새로 만들고 나이대 별 새로운 수 입력
   2. Fare도 종류가 너무 많아 통계가 어려움 ⇒ 범위를 묶어 해결
   3. Sibsp와 Parch는 굳이 나눌 필요 없이 가족 구성원으로 퉁치는 것이 분석에 용이함 ⇒ 두 항목의 수를 합쳐 해결
   4. Cabin은 'C85'처럼 표시하는데 뒤의 숫자에 의미가 없음⇒ 데이터를 가공하여 해결
   5. Age, Cabin에 빈칸이 많음⇒ 평균으로 빈칸을 채워 해결
즉 데이터를 범위 묶기, 합치기, 나누기, 가공하기, 채우기 등으로 가공하는 과정이 특징 생성입니다.

 

 

3. 특징 추출

* 분석 목표 : 승객이 생존/사망 여부 예측하기

* 특징 추출 : 데이터의 불필요한 부분을 삭제하고 데이터의 성질을 잘 나타내기 위해 압축하는 작업입니다.

   1. 불필요한 필드가 있음 ⇒ 생존율과 관계없는 이름, 티켓 번호 등을 삭제
   2. Sibsp와 Parch는 합쳐져 더이상 필요없음 ⇒ 두 항목 삭제
   3. Age도 범위를 나눠 필요없음 ⇒ Age 항목 삭제

위의 세단계를 거쳐 데이터를 가공했습니다. 이제 타이타닉 예측을 완성하고 Kaggle에 제출해보면 됩니다.

 

 

'Computer Science > Machine Learning' 카테고리의 다른 글

Getting started with the Scikit-Learn library  (0) 2020.12.14
Dendrograms and Heat Plots  (0) 2020.12.14
Hierarchical Clustering에 대하여  (0) 2020.12.13
Random Forest 배워보기  (0) 2020.07.10
Scikit-Learn 입문  (0) 2020.07.10