ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 머신 러닝, 자연어 처리, 데이터 분석 관련 개념 정리
    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​
        • 데이터프레임
          • 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-Profiling)

    • 좋은 머신 러닝 결과를 얻기 위해서는 데이터의 성격을 파악하는 과정이 선행되어야 함
    • EDA(탐색적 데이터 분석): 데이터 내 값의 분포, 변수 간의 관계, Null 값과 같은 결측값(missing values) 존재 유무 등 데이터를 파악하는 과정

     

     

    참고)

    위키북스 - 딥러닝을 이용한 자연어 처리 입문 책

     

    댓글

Designed by Tistory.