-
머신 러닝, 자연어 처리, 데이터 분석 관련 개념 정리Project/DEVOOK 2022. 2. 8. 17:58
머신 러닝 분야는 처음이어서 기본적인 개념 정리가 필요하다고 생각해 간단하게 정리해보았다.
✔️ 머신러닝 관련 라이브러리
- 아래 라이브러리 모두 pip install을 통해 설치 가능함
- 텐서플로우: 머신 러닝 오픈소스 라이브러리, 머신 러닝과 딥러닝을 직관적이고 손쉽게 할 수 있도록 설계됨
- 케라스: 딥러닝 프레임워크인 텐서플로우에 대한 추상화된 API를 제공함, 케라스를 통해 텐서플로우 코드를 훨씬 간단하게 작성 가능함
- 젠심(Gensim): 머신 러닝을 사용하여 토픽 모델링과 자연어 처리 등을 수행할 수 있게 해주는 오픈 소스 라이브러리, 젠심을 사용해 Word2Vec 등 다양한 모델 학습 가능함
- 사이킷런(Scikit-learn): 파이썬 머신러닝 라이브러리, 다양한 머신 러닝 모듈을 불러올 수 있음
- 주피터 노트북(Jupyter Notebook): 웹에서 코드를 작성하고 실행할 수 있는 오픈소스 웹 어플리케이션, 구글의 코랩이 주피터 노트북과 실습 환경이 유사함
✔️ 자연어 처리를 위한 라이브러리
- 아래 라이브러리 모두 pip install을 통해 설치 가능함
- NLTK: 자연어 처리를 위한 파이썬 패키지
- KoNLPY: 한국어 자연어 처리를 위한 형태소 분석기 패키지 (Java로 구성되어 있기 때문에 JDK 1.7 이상의 버전과 JPype가 설치되어 있어야 함 → 가장 최신 버전 깔면 됨)
- 데이터 분석을 위한 필수 패키지 - Pandas, Numpy, Matplotlib
- Pandas
- 3가지의 데이터 구조: 시리즈(Series), 데이터프레임(DataFrame), 패널(Panle)
- 시리즈
- 1차원 배열의 값(values)에 각 값에 대응되는 인덱스를 부여할 수 있는 구조
sr = pd.Series([17000, 18000, 1000, 5000], index=["피자", "치킨", "콜라", "맥주"]) print('시리즈 출력 :') print('-'*15) print(sr) # 출력 시리즈 출력 : --------------- 피자 17000 치킨 18000 콜라 1000 맥주 5000 dtype: int64
- 1차원 배열의 값(values)에 각 값에 대응되는 인덱스를 부여할 수 있는 구조
- 데이터프레임
- 2차원 리스트를 매개변수로 전달함
- 2차원이므로 행방향 인덱스(index)와 열방향 인덱스(column)가 존재함
- 열(columns), 인덱스(index), 값(values)으로 구성됨
- 리스트, 시리즈, 딕셔너리, Numpy의 ndarrays, 또 다른 데이터프레임으로부터 생성 가능함
values = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] index = ['one', 'two', 'three'] columns = ['A', 'B', 'C'] df = pd.DataFrame(values, index=index, columns=columns) print('데이터프레임 출력 :') print('-'*18) print(df) # 출력 데이터프레임 출력 : ------------------ A B C one 1 2 3 two 4 5 6 three 7 8 9
- Pandas를 사용해 CSV, 텍스트, Excel, SQL, HTML, JSON 등 다양한 데이터 파일을 읽고 데이터 프레임을 생성할 수 있음
- Numpy
- 수치 데이터를 다루는 파이썬 패키지
- 다차원 행렬 자료구조인 ndarray를 통해 벡터 및 행렬을 사용하는 선형 대수 계산에서 주로 사용됨
- 편의성 뿐만 아니라, 속도면에서도 순수 파이썬에 비해 압도적으로 빠름
- Matplotlib
- 데이터를 차트나 플롯으로 시각화하는 패키지
- 데이터 분석 이전에 데이터 이해를 위한 시각화나, 데이터 분석 후에 결과를 시각화하기 위해서 사용됨
- Pandas
✔️ 판다스 프로파일링(Pandas-Profiling)
- 좋은 머신 러닝 결과를 얻기 위해서는 데이터의 성격을 파악하는 과정이 선행되어야 함
- EDA(탐색적 데이터 분석): 데이터 내 값의 분포, 변수 간의 관계, Null 값과 같은 결측값(missing values) 존재 유무 등 데이터를 파악하는 과정
참고)
'Project > DEVOOK' 카테고리의 다른 글
FastText 기반 카테고리 분류 모델 만들고 배포하기 (0) 2022.05.17 데이터 점검 및 탐색 (0) 2022.02.08 크롤링한 데이터를 MySQL Docker 컨테이너에 저장하기 (0) 2022.01.31 Selenium을 사용한 동적 페이지 크롤러 구현 (0) 2022.01.31 Azure 핵심 문구 추출 서비스를 사용한 키워드 추출 테스트 (0) 2022.01.29