2022 데이터 사이언스/빅데이터 분석과 모델링 20

10. 데이터 전처리: 인코딩, 스케일링

데이터 전처리는 머신러닝의 첫 번째 단계이며, 가장 중요한 작업이다. 머신러닝에서 가장 힘들고 하기 싫지만 너무나도 중요한 작업이 바로 데이터 전처리이다. 모델이 성능을 내기 위해서는 반드시 데이터가 정제된 상태에서 학습을 수행해야 하기 때문이다. 지금까지 알아본 내용은 모두 머신러닝 지도 학습 프로세스에 해당한다. 지도 학습의 큰 그림은 다음과 같다. 데이터 전처리 → 학습/테스트 데이터 분할 → 모델학습 및 검증평가 → 예측 및 평가 지난 두 번의 포스팅에서 데이터를 분할하고 모델링(알고리즘 학습)과 교차 검증을 진행하며, 테스트 데이터로 예측을 수행하고 모델의 성능을 측정하는 과정까지 모두 살펴보았다. 남은 데이터 전처리 단계에서는 주로 다음과 같은 작업을 수행한다. 이 중 어떤 작업을 해줄지는 데..

09. 교차 검증: cross_val_score, GridSearchCV

교차 검증을 통해 과적합된 데이터의 test 데이터 예측 정확도를 높일 수 있다. 데이터가 크면 상관없지만, small data의 경우 test 데이터에 대한 예측 성능이 떨어질 수 있다. 적은 양의 데이터를 학습시켰을 때 종종 모델이 학습 데이터에 '과적합'되기 때문이다. (1) 과대적합(Overfitting) 학습 데이터를 과하게 적합되어 실제(test) 데이터에 대한 오차가 증가하는 현상 학습 데이터에 대하여 높은 정확도를 보이지만 새로운 데이터에 대한 예측 정확도는 저하 * 해결 방안 파라미터의 수가 적은 모델을 선택하거나 모델에 규제를 가하여 단순화 데이터 잡음(outlier, error) 제거 추가 데이터 확보(비용 등의 문제로 쉽지 않으므로 교차 검증을 통해 해결) (2) 과소적합(Under..

08. 머신러닝 라이브러리: Scikit-learn

Scikit-learn 라이브러리로 Python에서 머신러닝 모델을 구현할 수 있다. Scikit-learn은 Python 기반의 머신러닝 라이브러리이다. 다양한 알고리즘 함수, API, 내장 예제 데이터 등을 제공한다. 앞으로 데이터 전처리부터 교차 검증과 다양한 머신러닝 모델(회귀, 분류, 군집화 등) 구현 등 다방면에 scikit-learn 라이브러리를 사용할 예정이다. https://scikit-learn.org/stable/ scikit-learn: machine learning in Python — scikit-learn 1.1.1 documentation Model selection Comparing, validating and choosing parameters and models. App..

07. 머신러닝의 이해

머신러닝에서 알고리즘의 성능보다 중요한 것은 학습 데이터의 질이다. 인공지능과 머신러닝 인공지능은 사람의 지능을 모방하여 사람의 행동을 기계가 구현하도록 하는 모든 기술을 말한다. 가장 상위의 개념인 인공지능 안에는 머신러닝과 딥러닝이 존재한다. 기계가 스스로 데이터를 기반으로 패턴을 학습하여 결과를 추론하는 것이 머신러닝이며, 그 중에서도 인공 신경망(Deep Neural Networks) 기반의 딥러닝 방식이 각광을 받고 있다. 딥러닝 방식은 주로 이미지, 음성, 비디오 등 비정형 데이터를 다루는 데 집중되어 있다. 기존의 머신러닝 알고리즘은 어느 시점부터는 데이터의 양이 많아져도 퍼포먼스가 일정하다. 반면, 딥러닝의 경우 데이터의 양이 많으면 많을수록 퍼포먼스가 향상된다. 딥러닝이 각광 받고 있는 ..

06. 데이터 시각화: matplotlib, seaborn

matplotlib, seaborn은 Python의 가장 기본적인 시각화 툴이다. matplotlib 시각화 라이브러리의 특징은 모든 속성을 알고 외워서 사용할 수 없다는 것이다. matplotlib 라이브러리 역시 데이터를 시각화하고 편집하는 정말 많은 속성을 포함하고 있다. 어떤 식의 세팅, 수정이 가능한지 알고 있으면 공식 문서나 구글 검색에서 찾아 사용할 수 있다. 명령어를 외우는 것보다 그래프의 어떤 부분을 어떻게 바꿀 수 있는지 아는 것이 중요하다. 다음은 matplotlib 공식 문서의 링크이다. Quick-start guide에서 다양한 활용법을 찾아볼 수 있다. https://matplotlib.org/stable/index.html Matplotlib documentation — Mat..

05. Pandas(4): 타이타닉 예제

Titanic Passenger 데이터를 활용한 Pandas 라이브러리 실습 지금까지 세 번의 포스팅에 걸쳐 다룬 Pandas 라이브러리를 Titanic 데이터로 실습한다. 아래 링크에서 실습 코드를 확인할 수 있다. https://github.com/tldnjs1231/data-analytics/blob/main/data-analytics-05-titanic.ipynb GitHub - tldnjs1231/data-analytics Contribute to tldnjs1231/data-analytics development by creating an account on GitHub. github.com

04. Pandas(3): 데이터 합치기

Pandas에는 2개 이상의 DataFrame을 결합하는 메소드가 존재한다. Pandas에서 concat, merge, join 메소드를 사용해 2개 이상의 데이터프레임을 합칠 수 있다. concat : 축을 따라 데이터프레임 연결 (default : axis=0) merge : 두 데이터프레임에 공통으로 존재하는 열을 기준으로 병합 join : 두 데이터프레임의 행 인덱스를 기준으로 병합 concat concat은 데이터프레임을 행 방향이나 열 방향으로 단순 연결하는 메소드이다. 빈 데이터는 모두 NaN 데이터로 처리된다. import pandas as pd pd.concat([df1, df2]) pd.concat([df1, df2], axis=1) concat의 경우 기존의 행 인덱스나 열 이름이 그..

03. Pandas(2): 정렬 및 Grouping

Pandas를 사용하여 외부 데이터를 읽어와 정렬하고 분석할 수 있다. 지난 포스팅에서는 직접 만든 간단한 데이터로 실습을 진행했다. 현업에서는 외부 데이터를 분석에 사용하기 때문에, 웹 상의 데이터나 파일로 저장된 데이터 등 외부 데이터를 불러올 줄 알아야 한다. Pandas를 사용해 CSV, JSON, HTML(표 데이터), MS EXCEL, SQL 등 다양한 형태의 데이터를 불러올 수 있는데, 앞으로 CSV 파일을 가장 많이 불러오게 될 것이다. CSV 파일 불러오기 CSV 파일로부터 데이터를 불러와 데이터프레임을 생성하는 것은 데이터 분석을 위해 데이터프레임을 생성하는 가장 일반적인 방법이다. CSV 데이터를 불러오는 .read_csv() 명령어는 구체적으로 아래와 같이 사용된다. import p..

02. Pandas(1): 데이터 조회 및 결측값 처리

Pandas는 다양한 데이터 분석 기능을 제공하는 Python 라이브러리이다. Pandas(Panel data system)는 데이터 분석에 사용되는 Python 라이브러리로, SQL, 엑셀시트처럼 행과 열로 이루어진 데이터를 효율적으로 가공 및 처리할 수 있도록 해준다. Pandas 자료구조 Series 가장 간단한 1차원 구조 하나의 열을 의미 DataFrame 행과 열을 가진 2차원 자료형 별도의 인덱스를 지정하지 않으면 0부터 시작되는 인덱스를 기준으로 데이터 저장 데이터프레임 데이터 조회 1) 열(column) 기준 조회 df['name'] / df.name : 'name' 컬럼 조회 df[['name', 'grade']] : 여러 개의 컬럼 데이터 조회 * 여러 개의 컬럼 동시 조회 시 대괄호..

01. 데이터 사이언스란?

데이터 사이언스는 데이터 기반의 의사결정을 위하여 통계학, 데이터 분석, 기계학습의 방법론을 통합하는 학문이다. 데이터 사이언스는 데이터로부터 의미있는 정보를 추출해내는 학문이다. 통계학과 일정 부분 유사하지만, 통계학이 정형화된 데이터를 다루는 반면, 보다 다양한 데이터를 수학과 모델링으로 분석하여 앞으로의 경향까지 예측한다는 점에서 데이터 사이언스는 통계학과 데이터 분석, 기계학습 등의 분야를 통합하는 개념이라고 볼 수 있다. 데이터 사이언스 라이프사이클(Data Science Lifecycle) 데이터 사이언스 실무는 크게 6단계로 나누어진다. 빅데이터 분석과 모델링 카테고리에서는 데이터 준비 단계부터 모델링 단계까지 알아본다. 1) 비즈니스 이해 업무의 관점에서 프로젝트의 요구사항에 대한 전반적인..

1 2