본문 바로가기
카테고리 없음

Python을 활용한 데이터분석 실습 (초급)

by Choose Me 2023. 12. 30.
SMALL

Python이란?

-   귀도 반 로섬(Guido Van Rossum)이 개발한 인터프리터 언어

-   범용 언어, 오픈소스 프로젝트, 무료로 사용 가능 

-   여러 프로그램에서 Python 코드의 실행을 지원하지만데이터 분석용으로 Jupyter Notebook을 많이 사용

 

Jupyter Notebook의 설치

-   Jupyter Notebook는 Python을 포함한 직접 설치 또는 Anaconda를 활용한 설치 필요
-   직접 설치시 각종 환경 설정 및 명령어 입력의 어려움으로 초보자에게 어려울 수 있음
-   Anaconda의 경우 Python, Jupyter Notebook 등 다양한 프로그램을 간편 설치 가능
-   Python의 경우 3.7 버전 이상 설치를 권장

 

 Jupyter Notebook 영역별 구분

-   View 메뉴에서 각 요소 보이기/숨기기 설정 가능

 

코드의 실행

-   Edit 모드에서 코드 입력을 한 후 실행 단축키 또는 버튼 클릭으로 코드 실행 가능

-   In 뒤의 숫자는 실행 번호, Out 뒤의 숫자는 출력 번호 
-   print() 함수를 사용하지 않을 경우 마지막 출력만 Out 오른쪽에 표기됨

 

명령어 입력

-   Python은 대소문자 및 띄어쓰기를 잘 지켜주어야 에러를 사전에 예방 가능
-   for 반복문이나 if 조건문, 사용자 정의 함수를 작성할 때는 들여쓰기 검토 필수
-   들여쓰기시 탭(tab)과 띄어쓰기를 섞어 쓰면 안되며, 탭 사용을 권장
-   주석(comment)은 줄 앞에 #을 붙이면 되며, 코드 실행에 영향을 미치지 않음

 

숫자와 문자

-   숫자: 정수/실수/복소수 등 표현 가능 
-   문자: 작은 따옴표 또는 큰 따옴표를 활용하여 문자 지정 및 표현 가능

 

list 객체

-   숫자, 문자 등 다양한 원소를 저장할 수 있는 기본 객체 (object)
-   대괄호를 사용하여 생성 
-   복잡한 구조의 자료 보관 용이

 

함수의 개념

-   어떠한 기능을 수행하기 위한 코드의 집합
-   함수명과 소괄호 사용이 기본이며 필요에 따라 인자 (argument)에 값을 할당
-   Python 자체에서 제공하는 기본 함수, 라이브러리에서 제공하는 함수, 사용자가 직접 만든 함수가 있음
-   비슷한 개념으로 메서드(method)가 있음

 

라이브러리의 개념

-   고급 기능을 사용하기 위한 별도의 함수 집합
-   그래프를 그리거나 통계, 머신러닝 분석을 수행하는 등 특수목적용으로 제작됨
-   Anaconda를 설치하여 Python을 사용하는 경우 데이터 분석에 필요한 라이브러리가 다수 기본 설치됨
-   import 뒤에 라이브러리명을 선언하여 해당 라이브러리의 모든 기능을 사용할 수 있게 준비시킴 (불러옴)
-   from 또는 ‘.’를 활용하여 라이브러리의 일부 모듈 또는 함수를 불러옴
-   함수 또는 모듈명이 너무 길거나 특정 사유가 있는 경우 as를 사용하여 별칭(alias) 지정 가능
-   프로그램 또는 세션을 재부팅 한 경우 다시 라이브러리 재호출 필요

 

엑셀 파일 사용시 유의사항

-   엑셀 파일 확장자 .xls 와 .xlsx 모두 읽어올 수  있음 
-   특정 시트(sheet)를 지정하여 읽어올 수 있음 
-   Pandas 라이브러리의 read_excel() 함수 사용 
-   엑셀 파일로 저장할 경우 데이터 객체의.to_excel() 메서드 사용

 

CSV 파일 사용 방법

-   각 값이 쉼표(comma)로 구분되어 있는 파일인 .csv 확장자의 파일을 읽어올 수 있음
-   Pandas 라이브러리의 read_csv() 함수 사용 
-   csv 파일로 저장할 경우 데이터 객체의.to_csv() 메서드 사용

 

 데이터프레임(DataFrame)

- 표 같은 스프레드시트 형식의 2차원 자료 구조 
- index, column name, value 로 이루어져 있음 
- Pandas의 DataFrame() 함수, 중괄호, 콜론 등 다양한 요소를 사용하여 생성
-   각 열(column)에는 숫자, 문자 등 서로 다른 속성의 자료를 넣을 수  있음

 

데이터프레임 색인

- 대괄호를 사용하여 내부 원소에 접근 가능 
- 보다 편리한 데이터 색인 및 필터링을 위해.iloc[] 및 .loc[] 인덱서 활용
-   .iloc[] 인덱서는 내부에 정수만 사용 가능
-   대괄호 내부 쉼표를 사용하여 row와 column을 동시에 색인하려고 하는 경우 쉼표 앞에 row 관련 내용 입력
-   인덱서 사용시 모든 row를 지정할 경우 콜론을 활용

 

데이터프레임 필터링

-   주로 row 를 필터링 하기 때문에 주로 .loc[] 인덱서를 활용하고 쉼표 앞의 row 영역에 조건 명시
-   필터링 후 해당 내용을 별도로 저장하기 위해서 할당 연산자 '='를  사용
-   다중 조건 필터링의 경우 소괄호와 논리 연산자 사용

 

평균

-   일반적으로 평균은 산술 평균을 지칭하며 '데이터의 합계를 데이터의 총 개수로 나눈 값'을 의미

 

중앙값

-   주어진 숫자 중 가장 가운데 위치한 값

 

상관 분석(Correlation Analysis)의 정의

-   두 변수간에 어떤 선형적(직선적) 관계를 갖고 있는지 분석하는 방법

 

상관 계수(Correlation Coefficient)의 특징 

-   여러 가지 상관 계수가 있으나 일반적으로 피어슨 상관계수(Pearson’s correlation coefficient)를 사용
-   두 변수가 선형관계인 경우에 사용하며 상대적인 기준임 
-   값 범위는 -1에서 1사이

 

머신러닝의 분류

-   머신러닝은 크게 3개 분야로 나뉘어짐 
-   지도학습(Supervised Learning): 종속변수 존재, 모델 성능 평가 가능 
-   비지도학습(Unsupervised Learning): 종속변수 부재, 모델 성능 평가가 어려움 
-   강화학습(Reinforcement Learning): 어떤 환경 안에서 정의된 에이전트가 보상을 최대로 하는 행동을 선택

 

용어 정리

-   종속변수: 추론(예측 또는 분류) 대상이 되는 변수
-   독립변수: 추론값을 산출하기 위해 활용하는 변수
-   모델: 어떤 현상을 설명하기 위한 수식 또는 규칙
-   파라미터(Parameter): 어떤 것을 조정하기 위한 설정값

 

관련 라이브러리 – sklearn

-   Scikit-Learn 이 정식명칭이며 다양한 머신러닝 함수를 제공
-   모듈 내부에 내/외장 데이터가 있어 이와 함께 다양한 함수를 테스트 가능
-   metrics 메서드 내부에는 다양한 평가함수가 있어 이를 활용하여 모델 성능 평가

 

선형 회귀(Linear Regression)

-   종속변수가 수치형 자료인 경우 우선적으로 고려하는 모형 
-   보통 다중 선형 회귀(Multiple Linear Regression)을 칭하며, 독립변수가 하나인 경우는 단순 선형 회귀 
-   sklearn 라이브러리로 구현 가능
-   LinearRegression() 함수의 fit() 메서드에 학습 데이터 할당 가능
-   모델 객체의 coef_와 intercept_ 어트리뷰트로 각각 계수와 절편 확인 가능
-   모델 객체의 predict() 메서드로 예측

 

비계층적 군집분석: K-means Clustering

-   주어진 데이터를 k개의 군집으로 묶는 알고리즘 
-   계산에 평균을 활용하며 반복 연산을 통해 최적의 결과를 도출
-   sklearn 라이브러리로 구현 가능
-   KMeans() 함수의 fit() 메서드에 학습 데이터 할당 가능 
-   모델 객체의 cluster_centers_ 어트리뷰트로 각 군집의 중심점(centroid) 정보 확인 가능
-   모델 객체의 labels_어트리뷰트로 각  데이터에 할당된 군집 확인 가능

 

 

반응형
LIST