I can do it!!

He can do! She can do! why cannot me? i can do it!

개발/sk infosec cloud ai 전문가 양성과정

[PYTHON 머신러닝]SK infosec 클라우드 AI 전문가 양성과정 수업필기본

gogoriver 2020. 9. 11. 08:57

NMF

  • 비지도학습 중 비음수 행렬 분해

비음수행렬분해(NMF) 정의 및 설명

  • 음수가 아닌 값만 가지고 특성을 추출하는 것이다
  • 차원축소를 하는 것이다.
  • 빠르게 데이터를 수집하고 학습할 수 있다
  • 그러나 데이터 손실을 가져올 수밖에 없다.
  • 음수는 과감하게 버리고, 양수만 가지고 분석한다

  • 계수는 특징으로 생각하면 된다

  • 문서분류, 여러 사람의 목소리가 담긴 오디오 트랙의 소스에서 원래 소리가 어떻게 되었는지 파악

  • 행렬 인수분해 알고리즘을 사용한다

    • 열의 개수와 두번째 참여하고 있는 항의 행의 갯수를 곱한다

    • 이를 역으로 인수분해해서 이러한 행렬이 어떻게 형성되었는지 확인하는 방법이다

    • 최종적으로 이전 데이터가 어떻게 되었는지 확인하려면 조합이 무엇이고, 이게 맞는지 확인해야한다

    • 양수의 데이터만 적용할 것이고, 얼굴 데이터 가지고 어떠한 분석 작업을 하는데 있어서 양의데이터와 음의 데이터로 구분되어 있다

    • 우리가 숫자라고 할 때는 0255이지만, 이게 -11 , 0~1로 줄어들 수 있다

    • 어떠한 데이터를 쓰느냐에 따라서 SCALE 조정, 일반화 등을 한다

    • 주성분분석(PCA)방식에서는 양수 음수 중요하지 않고, 절대값을 취한다. 그래서 +인지, -인지 구분 못한다

    • PCA는 적용할 수 있다. 근데 차원축소까지는 좋은데 이게 원본과 무슨 관계인지 확인하기가 어렵다

    • 근데 NMF는 확인하기 쉽다

    • 핑크에서 음수인지 아닌지 알수 x

    • 핑크가 절대값

    • 근데 오른쪽은 음수인지 양수인지 흑백으로 구분된다!

      • 이전 블로그 글 수정하기
  • topic modeling

    • tf-idf

      • : tf는 문서내 단어가 몇번 ?
      • : idf는 못따라갔......
    • 그룹핑을 하게 된다.

    • 데이터를 나눌 때, 주제를 찾을 때 사용하는 방식 중 하나이다.

    • '먹다'를 음식과 함께 사용된다. 그래서 먹다를 음식 구성요소 벡터로 함께 그룹화되어 각 기사는 '음식' 주제의 특정 가중치를 갖는다.

    • word vector라고 하는데 deep learning때 할껴

    • 따라서 각 기사는 음식이라는 주제에 가중치를 쌓아준다

    • 원래 문서가 어떻게 구성되었는지 확인하는게 토픽 idf이다

NMF 실습

  • sklearn에서 제공하는 fetch_20newsgroups 를 사용할 예정이다
  • 아까 잠깐 보았던 word vector를 위해서 TfidVectorizer을 사용한다.
  • 문자 구분
  • image
    • ORIGINAL
  • image
  • 이렇게 텍스트 데이터를 넣고 싶으나 못함
  • image
    • 그래서 이렇게 쪼개여 data frame을 만들 예정이다

t-SNE 매니폴드 학습

  • 변환된 데이터를 시각화 할 때, PCA를 적용하는 것은 제한적이다.

    • 왜냐하면 회전을 통해 여러개의 방향을 떨어트리기 때문에
    • 그래서 1차원으로 줄이면서 위치가 유사해져서 두 군집의 변별력이 떨어진다.
  • image

  • t-SNE매니폴드는 시각화에 유리

  • 훈련 세트에만 적용된다.

  • 그래서 fit_transform()을 사용해야한다

    • 단점 : 매번 값이 바뀐다.
    • 그치만 데이터 구분은 잘한다!
  • 어떤 데이터가 나한테 더 가까우니 파악하고 배치하는 것이다.

iris 데이터를 이용한 t-SNE 적용하기

  • image
  1. DATA PART가 들어가 있는 DATAFRAME 을 생성한다
  2. COLUMNS를 정한다
  3. TARGET은 LABEL로 설정(Y) 종속변수
  4. FEATURE에 아까 SEPAL LENGTH ~ PETAL WIDTH까지 가지고 온다

군집(clustering)

  • image

  • 같은 그룹에 속한 data points는 특징과 비슷한 속성을 가져야 하며, 다른 그룹에 속하는 data points는 특징과 비슷하지 않은 속성을 가져야한다!

  • 정답을 갖지 않는 비지도!

  • 분류 알고리즘과 유사하다


종류

  1. k-평균 군집

    • 몇개의 클러스터로 나눌 것인지 정하고 시작
    • 그룹 내 데이터들이 모일 수 있도록 center을 잡는다.
    • center point는 랜덤하게 시작할 수 있고, 학습을 할 수록 중심이 재조정된다.
    • 새로운 데이터가 발견되면서, 기존과 같이 계산하면서 중심점이 이동한다.
    • 어느 한 순간 중심점이 움직이지 않으면 더이상 계산을 하지 않고, 해당 중심점이 적절한 중심이라고 판단한다

    • 중심점 이동 하는 것 보여주는 그림

    • 이를 가지고 boundary 영역을 그리게 되면 아래와 같다.

    • DATA는 정해져 있지만 군집수는 우리가 바꿀 수 있다.(정해질 수 있다)

  2. 병합군집

  3. DBSCN Clustering