본문 바로가기

전체 글307

Proj 사용자 행동 인식 예측 분류 Human Activity Recognition 목표 사용자 행동 인식 데이터 세트를 활용해 예측 분류 수행 데이터 준비 30명에게 스마트폰 센서를 장착한 뒤 사람의 동작과 관련된 여러가지 피처를 수집한 데이터 https://www.kaggle.com/datasets/uciml/human-activity-recognition-with-smartphones/ 분석 모델 구축 결정 트리 Decision Tree 먼저 데이터를 불러옴 그리고 컬럼 값(피처명)도 불러옴 피처명을 보면 X, Y, Z 이런식으로 나와 있는데, 인체의 움직임과 관련된 속성의 평균(mean)과 표준편차(std)가 X,Y,Z축 값으로 되어 있는 듯 함 그러다보니 중복되는 피처명들이 있을 수도 있음 (563개나 되니까) 그럼 오류가 날 수 있으니까 체크체크 체크해봤을 때 아무것도 나오지.. 2023. 12. 6.
Algorithm - 개요1 08~ 10행은 순차적으로 실행. 08~ 10 처럼 한 문장씩 순서대로 처리되는 구조가 순차 구조 sequential structure 09~10은 if문으로 복합문임. if와 콜론 사이에 있는 조건식이 있고, 조건식 true/false에 따라 실행 흐름이 변경되는 구조를 선택 구조 select structure 라고 함. 알고리즘 흐름은 위에서 아래 긴 네모 안에 작성한 작업이 실행되고 (← 이거 표시는 대입임) 마름모 모양 안에 작성한 조건식에 따라 True /False 중 하나 따라가고 ▶ 조건식에 따라 흐름이 두 갈래로 나뉘는 것을 양갈래 선택 이라고 부름 알고리즘이 흐르는 방향은 조건식이 결정. 형 변환 type conversion 코드 01에서 처럼 input은 문자열을 입력받아 반환함. (그.. 2023. 12. 5.
SQL NTILE,CUME_DIST,LISTAGG,LAG, LEAD - 등급 출력. ▶ 월급의 등급을 4등급으로 나눠서 출력해봄 (균등하게 1등급은 0~25% 2등급은 25~50%, 이런식으로) ▶ NTILE( ) 에 숫자를 4를 쓰면 4등급, 5를 쓰면 5등급으로 나누어짐. ▷ 100%를 나눠서 등급을 매겨줌 ▷ order by 뒤에 nulls last는 월급이 높은 것부터 출력된 후에 NULL을 맨 아래에 출력하겠다는 얘기. - 데이터 순위의 비율을 출력 ▶ 월급의 순위와 순위의 비율을 출력하자면 아래와 같음 ▷ 사원 KING의 0.07인 것은 1/14(총14행)로 계산된 결과, 2등 2명은 3/14(2명이니까 1등1명 + 2등 2명) ▶ 파티션바이써서 직업별로 순위 비율 출력해보면 - 특정 컬럼에 속한 데이터를 가로로 한 칸에 출력 ▼ LISTAGG 함수를 사용해 .. 2023. 11. 29.
ML 결정 트리 과적합 Overfitting 결정 트리는 규칙 생성 로직을 제어하지 않으면 완벽하게 분류하기 위해 트리 노드를 계속해서 만들어 감. 그래서 나중에는 매우 복잡한 규칙 트리가 생길 수 있음. ▶ 이는 쉽게 과적합, Overfitting이 될 수 있다는 것을 의미함. ▷ 그래서 결정 트리는 과적합이 상당히 높은 ML 알고리즘 중 하나임 이를 제어하기 위해 max_depth, min_samples_leaf 등 하이퍼파라미터를 튜닝하는 것임 - 어떻게 학습 데이터를 분할해서 예측을 수행하는지, 이로 인한 과적합 문제를 시각화 해볼 예정 ▶ 분류를 위한 데이터 세트를 임의로 만들어 봄 ▷ 사이킷런에서 분류 테스트용 데이터를 쉽게 만들 수 있도록 make_classification() 함수 제공 ▷ 각 피처 X, Y축으로 나열된 2차원 그래프.. 2023. 11. 29.
SQL 순위출력 RANK, DENSE_RANK - 데이터의 순위를 출력하는 함수 ▼ 직업이 analyst, manager인 사원들의 이름, 직업, 월급, 월급의 순위를 출력하면 다음과 같음 ▶ RANK() 뒤에 OVER 다음에 나오는 괄호 안에 출력하고 싶은 데이터를 정렬하는 SQL 문장을 넣으면 그 컬럼 값에 대한 데이터 순위가 출력됨 ▷ 위에서는 월급이 높은 사원부터 출력되게 ORDER BY절을 사용했으니까 높은 순서부터 순위가 부여됨 ▶ 직업별로 묶어서 순위를 부여하기 위해 ORDER BY 앞에 PARTITION BY job 을 사용해서 해봄 - 데이터 순위를 상세하게 출력하는 함수 위에서는 1등이 2명이여서 바로 1다음에 3으로 갔는데 ▶ 바로 2등을 출력하고자 한다면 DENSE_RANK 함수를 사용하면됨 맨 끝에 컬럼 2개를 보면 확인해볼 .. 2023. 11. 28.
ML feature의 중요한 역할 지표 (결정 트리 알고리즘) 결정 트리 모델은 균일도의 기반해서 어떤 속성을 규칙 조건으로 선택하느냐가 중요한 요건 중 하나임. 몇 가지의 feature가 명확한 규칙 트리를 만드는 기여함. ▶ 이걸로 모델이 간결하고 outlier에 강한 모델을 만들 수 있음. 그래서 feature의 중요한 역할 지표를 확인해볼 수 있는데 : DecisionTreeClassifier 객체의 feature_importances_ 속성으로 확인할 수 있음. petal length가 가장 중요도가 높은 피쳐이고 (수치는 0.555) sepal width이 0으로 가장 중요도가 낮은 피쳐이다. 이전에 올렸던 graphviz와 중요한 피처 지표를 활용한다면 알고리즘이 어떻게 동작하는지 직관적으로 이해하기 쉽다 ✅ 2023. 11. 28.
ML 결정 트리 모델 시각화 Graphviz 결정 트리 알고리즘이 어떤 규칙으로 트리를 생성하는지 보여주는 Graphviz 패키지. ▶ scikit-learn에서 쉽게 인터페이스 할 수 있게 export_graphviz( ) API 제공 ▷ 학습이 완료된 Estimator, 피처 이름 리스트, 레이블 이름 리스트 입력하면 학습된 결정 트리 규칙을 시각화함 → 파이썬으로 개발된 패키지가 아니라서 😂 설치한 후에 파이썬 래퍼(Wrapper) 모듈을 별도로 설치해야함 1. Graphviz에서 본인 컴퓨터 스펙에 맞는 파일을 설치함 https://graphviz.org/download/ Download Graph Visualization Software graphviz.org 2. 설치할때 로컬PC의 시스템 PATH 변수를 설정 2-1. PATH 변수가 .. 2023. 11. 28.
Proj 구글 스토어 앱 데이터 분석을 통한 평점 예측 (2) 지난꺼 이어서 https://dev-adela.tistory.com/279 앱 평점을 예측하기 위해서 회귀모델을 사용할 예정, 0~5점까지의 값을 내야하니까 학습하기 전 해야할 1. 카테고리형 변수를 수치형으로 바꾸기. > ML에서 학습을 하려면 문자열이 아닌 컴퓨터가 학습할 수 있는 숫자로 바꿔줘야한다. - 이전 글에서 확인했듯이 'Free', 'Ad Supported', 'In App Purchases',' Editors Choice', '2021'는 'False' 와 'True'로 되어 있다. ▶ 그래서 Ture를 1로 False를 0으로 바꾸기 ▷원래 bool로 되어 있었던 피쳐들이 int 숫자로 바뀌었다. 그리고 아직도 남아있는 object...을 바꾸기 위해 사용할 one-hot encodin.. 2023. 11. 27.
Proj 구글 스토어 앱 데이터 분석을 통한 평점 예측 (1) 목표 구글 스토어 앱 데이터 분석을 통하여 앱 평점을 예측하는 회귀 모델 수행 구글 스토어 앱 평점에 영향을 미치는 특성 데이터들에 대한 데이터 분석 수행 데이터 준비 https://www.kaggle.com/datasets/gauthamp10/google-playstore-apps/ 분석 모델 구축 사이킷런의 로지스틱 회귀 모델 구축 결과 분석 회귀 모델을 사용 후 평가 및 예측 수행 confusion_matrix, accuracy, precision, recall, f1 info() 를 써서 봤더니 bool도 있고 문자열도 있고 숫자도 있고 어마무시함 describe()를 통해 통계량 정보를 출력. Rating은 별점이다보니 0부터 5가 최대 - 결측값과 이상치 처리 * 변수 .. 2023. 11. 26.