SDS Brightics/Projects

[Samsung SDS Brightics]Brightics Studio로 데이터 분석하기 #3 군집 분석

y•ᴗ•n_seo 2021. 6. 29. 18:28

안녕하세요@!

지난주까지만 해도 시험 끝! 방학 시작!

하면서 굉장히 좋아했었는데 말이죠,,,

조금 한가해진걸 어찌그리 귀신같이 알아내는지

할 일들이 스물스물 모여드네요...허허

그럼,,, 오늘도 힘내보쟈구욧


 

이번 주도 지난 주에 이어, 공개 데이터셋을 이용해

데이터 분석을 진행해보도록 하겠습니다 :)

지난주에는 마스크 착용 비율과 코로나 사망자의 연관성을

판단하는 "회기 분석 (Regression)" 을 진행했었죠~!?!

잘 기억이 안나신다면 아래 링크로

한 번 다녀오시라구요~~!!

 

[Samsung SDS Brightics]Brightics Studio로 데이터 분석하기 #2 공개 데이터 수집 + 분석 (tistory.com)

 

[Samsung SDS Brightics]Brightics Studio로 데이터 분석하기 #2 공개 데이터 수집 + 분석

안녕하세요! 이전 포스팅에서 이야기 드린 대로, 공개 데이터셋을 수집하고 분석하는 프로젝트 포스팅을 위해 다시 돌아왔답니다 :) 브라이틱스 스튜디오를 이용한 데이터 모델링 방법이나, 함

yslog99.tistory.com

이번에는 대상간의 유사성을 기초로 비슷한 것끼리 그룹화 하는

"군집 분석 (Clustering)" 을 진행해보려 합니다 :)

주제 선정 및 데이터 수집

데이터 분석의 첫 단계는 주제 선정이라고

지난번에 설명 드렸었죠~?!

이번 군집분석의 주제는

"현직 의사들의 보건의료인국가시험 성적 현황"

입니다!

현직 의사들의 보건의료인국가시험에서

내과학, 보건의약관계 법규, 산부인과, 소아과, 예방의학, 외과, 정신과

위의 총 6개의 과목에 대한 성적이 나와있는 데이터 셋을

군집 분석 해 보도록 하겠습니다 :)


그럼 이제 분석 할 데이터를 수집해야겠죠~!?

저는 이 데이터를 사용했답니다 :)

https://www.data.go.kr/data/15060446/fileData.do

 

한국보건의료인국가시험원_보건의료인국가시험 성적 현황_의사_20200529

보건의료인 국가시험 응시자의 성적 현황을 분석할 수 있는 정보(연도, 직종, 회차, 과목명, 과목별 점수, 총점, 합격여부)를 개인을 식별할 수 없는 형태로 제공

www.data.go.kr

 

데이터 수집 시에는

지난번에도 이야기 드렸듯이,

라이센스를 가장 먼저 확인 해주셔야 합니다!

데이터셋 라이센스

 

제가 찾은 데이터는

이렇게 이용 허락 범위 칸에 "이용허락 범위 제한 없음"

이라고 표시된 것을 확인할 수 있고,

라이센스 범위 설명

"이용허락 범위 제한 없음" 이라고 표기 된 경우

자유롭게 이용 가능하다고 설명이 되어있습니다!

자아 그러면 맘 편하게 데이터 분석을 시작해도 되겠군요 :)

 

데이터 분석 하기

이제는 완벽히 익숙해져버린~!

브라이틱스 스튜디오 클릭 > ML 버전 실행 > 프로젝트 생성 후 이름 설정

을 해주시고욥

CSV 파일을 불러오기 위한 Read CSV 함수를 추가해줍니다~!

Path 칸에 데이터가 있는 폴더 위치를 입력해 주신 후,

Delimiter (구분자) 입력,

Null filteringTrue 로 선택해준 후,

실행시켜줍니다!

누락된 값이 없을때는

Null filteringFalse 로 선택해주시는게

더 효율적이지만,

제가 고른 데이터는 누락값 (결시자) 이 있기때문에

로드시에 미리 감지해 두어야

나중에 필터링 하기가 쉽답니다 :)

이렇게 말이죠 ㅎㅎ

위의 스크린샷처럼

Delete Missing data 함수를 이용해

Null 값을 모두 제거해줍니다!

함수를 실행하시면 왼쪽의 표에서 오른쪽의 표로

Null 값이 없어져서 나온것을 확인하실 수 있습니다@!

Select Column 함수를 이용해서 필요한 데이터들만 뽑아 옵시다!

그다음,,,,

흐어억 이게 뭔가 싶으시죠ㅠㅜㅠㅜㅠ

제가 원하는 데이터셋은

일련번호 (과목1) (과목 2) ..... 합격여부
1 (점수) (점수)   합격
2 (점수) (점수)   불합격

이런 형태인데,

제가 다운받은 데이터셋은

일련번호 과목명 점수 ..... 합격여부
1 (과목1) (점수)   합격
1 (과목2) (점수)   합격
1 (과목3) (점수)   합격

이런 형태여서,

목적에 맞도록 데이터를 바꿔준 것이랍니다...!

Filter 함수를 이용해 각 과목별로 분류하고

Select Column 함수로 필요한 열을 뽑아낸 다음

Join 함수로 다시 합쳐주었다는 것을 확인하실 수 있어요 :)

자, 이제 데이터까지 잘 만들어주었으니

이제 군집 분석을 하고 정확도 평가만 하면 되는데@!

도대체 새로운 열은 왜 추가했는가?!?!

고거슨 바로 군집 분석을 위해 사용하는

K-means 함수의 특성 때문이랍니다!

K-means 함수를 이용해 군집 분석을 하면

각 군집에 대해서 번호를 부여합니다.

나중에 이 군집과 합격/불합격 여부를 비교해서

군집 분석의 정확도를 파악해야 하는데,

군집의 종류 (숫자)와 합격/불합격여부 (문자)는

서로 종류가 달라서 비교가 불가능하기 때문에,

불합격이면 1, 합격이면 0 을 할당하는 열을 추가한 것 이랍니다!

새로운 열의 변수 타입을 숫자로 지정하고,

[ 합격여부 ] 라는 변수의 값이 '불합격' 이면 1을 할당하라 는 조건문을

작성하시면

오른쪽 테이블에서 제가 지정한 [ 합격여부_숫자 ] 열이

생겨난 것을 확인하실 수 있답니다!


이제 앞에서 아주 잠깐 나왔던

K-means 함수를 이용해 군집 분석을 진행합니다!

군집 분석을 할 대상 (각 과목별 점수) 를

Input Columns 에 넣고,

Number of Clusters 항목에

몇개의 군집으로 나눌지,

그 숫자를 적어주시면 됩니다!

그리고 함수를 실행시키면

오른쪽 테이블에 prediction 이라는

변수가 생성된걸 확인하실 수 있습니다!

Table > Scatter Plot 을 클릭하면

산점도 그래프를 확인하실 수 있는데요,

Chart Setting > Color by 항목에서

Prediction (k-means 함수를 통해 나온 예측값) 을 선택하면

요러케 각 군집별로 다른색으로 보여준답니다@!

어떤 기준으로 군집이 나누어졌는지를 더 잘 파악하실 수 있을거에요 :)

데이터 분석 결과

자아ㅏ

대망의 분석 결과 확인 시간입니다@!

Evaluate Classification 함수를 이용해서

군집 번호와, 합격/불합격 여부를 비교해보겠습니다

0.73 의 정확도가 나왔네요@!

 

정확도 아래에 나오는

Confusion Matrix 도 확인해 보면

합격 (0으로 표기) 여부는 1915개가 일치했고,

불합격 (1로 표기) 여부는 466 개가 일치했네요!

 

 

여기서 잠깐!

"엥 군집분석에 웬 Evaluate Classification 함수?!"

이라는 의문이 드실 수 있는데요,,

 

군집분석을 2개의 군집으로 나누고,

이게 합격/불합격 여부와 비교를 하다보니...

거의 분류(Classification) 분석이 되어버렸죠...ㅎㅎ

 

하지만 실망하지 마세요!

지금까지 진행한 것을 바탕으로

군집 분석도 충분히 가능하니까요..!

 

다음 포스팅에서 이야기 다루도록 할게욥!!

 

[삼성 SDS Brightics] 데이터 분석? 그게 뭔데!? #02. 군집 분석 vs 분류 분석 (tistory.com)

 

[삼성 SDS Brightics] 데이터 분석? 그게 뭔데!? #02. 군집 분석 vs 분류 분석

안녕하세요! ​ 오늘의 포스팅은 삼성 SDS 브라이틱스 서포터즈로서 프로젝트를 진행하면서 공부한 개념들을 정리하는 두 번째 포스팅이랍니다 :) ​ 제가 포스팅하는 프로젝트들과 꿀팁(?)들은

yslog99.tistory.com

[삼성 SDS Brightics] Brightics Studio로 데이터 분석하기 #3 - 1 군집 분석 보강 하기 :) (tistory.com)

 

[삼성 SDS Brightics] Brightics Studio로 데이터 분석하기 #3 - 1 군집 분석 보강 하기 :)

안녕하세요 :) ​ 이전 포스팅에서 약속했었던, 군집 분석 프로젝트에 대한 추가적인 설명을 들고 돌아왔답니다@! ​ 혹시 이전의 포스팅이 기억이 안나신다면, 한번 다녀오시라구욧 〜(^∇^〜)

yslog99.tistory.com

 


오늘의 분석은 여기까지 입니다 :)

다음 주에는 팀으로 활동이 이루어지는데,

아주아주 엘리트이신 팀원분들과 함께 하게 되었답니다 흐헤

(´▽`ʃƪ)

더욱 다채롭고 재미있는 프로젝트를 만들어 올게요@!

그럼 앙뇽!

∠( ᐛ 」∠)_


* 해당 게시글은 Brightics 서포터즈 활동의 일환으로 작성되었습니다.

게시글 관련 문의 및 소통을 원하신다면 댓글을 남겨주세요 :)

브라이틱스 사용 중 문의사항은 brightics@samsung.com 으로 연락주세요!

#삼성SDSBrightics #BrighticsStudio #BrighticAI #브라이틱스 #모델링 #코딩없이분석하기#데이터분석 #군집분석 #군집분석모델 #Clustring #Clustering_without_coding #코딩없이군집분석모델링하기 #빅데이터 #데이터사이언티스트 #데이터분석툴 #데이터분석플랫폼 #데이터분석툴체험하기 #분석모델제작하기 #무료데이터분석툴 #오픈소스 #삼성SDS #삼성SDS서포터즈 #Brightics서포터즈 #Brightics서포터즈2기 #데이터사이언티스트 #DS #데이터컨설팅 #데이터컨설턴트