개발자로 후회없는 삶 살기
데이터 청년 캠퍼스 PART.19, 20일차 Clustering 본문
서론
본론
클러스터링 : 서로 비슷한 데이터를 그룹화 한 것
-> 이때 모델은 데이터의 패턴을 분석합니다.
- 활용
비슷한 구매 패턴을 가진 고객 분할/ 이상치 탐치/ 피쳐를 적은 수의 동족으로 줄여 매우 큰 빅데이터를 단순화/
- kmeans
각 중심이 데이터들의 평균을 잡고 다시 그룹원을 갱신하고 평균이 안 바뀌면 종료/
=> 평가 지표
adjusted Rand index : 라벨 정답값과 예측치 사이의 거리 예측/ -> 2가지의 파라미터/
-> pg29 : 정답데이터(그라운드 트루쓰), 예측데이터를 파라미터로 넣는다/ -> 비지도 학습이니 정답값은 여기에만 쓰입니다.
-> 실습
느낀점 : 군집화는 X만 넣는데 그래프로 표현하면 X들이 x축이고 데이터 프레임의 라벨 변수가 y입니다.
=> kmeans의 단점
kmeans가 spiral을 못하는 이유가 무작위 초기화를 하기 때문에 난수의 초기값에 따라 달라진다(포인트 바이 포인트로 군집을 합니다.) + k개를 개발자가 넣어줘야하는데 몇개의 군집으로 나누기가 생각하기 어려운 문제입니다. -> 고객을 몇개의 부류로 나눌 건가 쉽게 생각할 수 없습니다.
-> 단점 해결법 : 병합 군집법, DBSCAN
1. 병합 군집
계층적 트리형으로 군집화 합니다. -> 상향식 전략으로 각 개체가 자체 클러스터가 되고 그 클러스터 간 거리를 계산해서 점점 더 큰 클러스터로 병합해서 위로 올라갑니다. > 클러스터가 하나가 되면 종료합니다.
=> 순서
1. 각 클러스터를 하나의 클러스터로 봅니다.
2. 가까운 클러스터 두개를 하나로 묶습니다.
3. 비슷한 클러스터를 계산하기 위해 유사도를 거리를 계산합니다.
4. 단일 클러스터가 되면 끝입니다.
-> 단점
가까운 요소들끼리 클러스터링을 해서 여백이 있더라도 가까우면 군집화하는 것이 여전히 문제입니다. -> 따라서 spiral에서 line별로 크러스터링이 안됩니다.
+ 그러면 밀도가 높은 곳으로만 클러스터를 계산해보자 -> 여백인 부분은 보지도 않을 것입니다.
=> db
인근의 밀도가 밀집도를 초과하는 지를 검사하는 방법
-> ★강화★
pg43을 보면 k민스는 잘 못 분류하고 db는 잘 하더라 / db는 이상치 감지를 할떄도 쓰인다 3번째 그림을 보면 파랑을 정상, 주황을 이상치로 본다/ -> 어떠한 알고를 쓰느냐에 따라서 다른 군집 결과를 보이므로 이를 이해해야 알맞은 방법을 쓸수있다/
=> 개념 :
입실론 : 이웃의 최대 반경 -> 이웃을 검사할 건데 얼마만큼의 이웃을 검사할지를 의미
민포인트 : 입실론의 치대반경에 몇개까지 포함되어야하는지를 의미하여 최소 이만큼 있어야 클러스터로 판단
코어객체 : 이번 원가 옆 입실론 안에 데이터가 5개 이상일 때 두 원에 포함되면 코어객체이다/
-> 순서
랜덤하게 데이터 하나 선택 pg46 > 입실론 거리 만큼 원그리고 최소 데이터가 포함되나 파악 5개이니 조건 충족하여 c1이라고 명명 > 옆으로 이동하여 또 원그리고 최소 데이터 포함여부 판단 또 5개가 됨 그러면 아까 원과 이번 원은 같은 클러스터로 봄 >계속 옆으로 이동하여 미니멈 포인트가 충족되는 지름 봄 > 옆으로 가고 원을 그렸는데 민포인트 개수를 충족안하면 클러스터로 포함안하고 이상치로 봄/ 2중 for문으로 정확도를 계속 바꿔가 봐라/
=> 깃허브 들어가서 어떤 데이터는 kmeans는 정확도가 잘 나오는데 dbscan은 안 나오고 그렇다 그러니 언제는 kmeans를 쓰고 언제 dbscan을 쓰고 언제 계층형을 쓰고가 좋은지를 알 수 있을 것이다/
20일차
- 데이터 분석의 도메인 지식
공모전이나 프로젝트를 할 때 선행 연구를 2주 정도는 열심히 찾아봐서 분석할 분야의 준전문가 정도는 되어야한다/
- 데이터 분석가가 알아두어야 할 것들
1. 데이터 분석 기술에 대한 이해(내 PL)
1) 어떠한 목적을 위해 어떤 모델을 쓸 것 인가
2) Y의 영향을 끼치는 좋은 변수가 있는가?(통계 검정 분석) -> 이게 매우 중요하다 분석은 창조하는 아이디어의 개념이다 어떤 변수가 예측에 도움이 될까하는 변수를 수십개 최대한 많은 가능성있는 변수들을 생각하여 주어지지 않은 데이터 수집까지 해야한다/
3) 최적의 변수 조합을 고려한다
4) 실험 설계를 제대로 했는가? -> 99퍼의 정확도를 보이면 항상 뭘 잘 못했구나,,, 의심을 해야한다/ 어디가 잘 못 될 수 있는 부분을 항상 print나 shape나 등을 찍어봐야한다/
5) 모델을 통해서 얻을 수 있는 것 -> 내가 이 분석을 왜 하는 가를 생각해 봐야한다, 분석을 굳이 안해도 당연히 나오는 결과가 나올 때가 있다 = 내가 영화에서 느낀 통계로도 알 수 있는 것/
6) 456일차에서도 배운 거 같은데 이 피쳐가 실제로 구할 수 있는 데이터인지 봐야한다 영화 수익률을 구하는데 관객수는 그 당시에는 구할 수 없는 데이터이다 불량률을 구하는데 "불량"이라고 이미 나온 후에 나오는 데이터인지 아니면 공정 과정에서 구할 수 있는 데이터인지 생각해야한다/
- 현업에서의 데이터 분석 이해
1) 비용과 성과물의 비율 : 데이터 수집을 위해 클라우드를 쓰거나 데이터를 살 때 어느 비용이 발생할 수 있을지 미리 파악을 해야하고 회사에 보고를 해야하며 보고서에 없는 비용이 생기면 문제시 삼을 수 있다/
2) 지속 가능성 : 데이터 수집을 자동으로(자동화) 해야하고 수집하다가 이상치가 탐지되면 알람을 울리고 등등(이런 것도 가능하면 면접에 충분히 어필 가능하다)/
=> 사례
현업자가 무엇을 원하는지 진짜 1000000000000퍼센트 확인하는 것이 중요하다-> 계속 커뮤니케이션을 하라/
'[대외활동] > [데이터 청년 캠퍼스]' 카테고리의 다른 글
데이터 청년 캠퍼스 PART.project 13, 15, 16, 17일차(EDA) (0) | 2022.12.08 |
---|---|
데이터 청년 캠퍼스 PART.프젝 10, 11, 12일차(데이터 병합, EDA) (0) | 2022.12.08 |
데이터 청년 캠퍼스 PART.18일차 MongoDB (0) | 2022.11.22 |
데이터 청년 캠퍼스 PART. 11, 12일차 신경망 기반 알고리즘 (0) | 2022.11.18 |
데이터 청년 캠퍼스 PART.9, 13일차 텍스트 분석 (0) | 2022.11.18 |