본문 바로가기

분류 전체보기

캐글 샌프란시스코 범죄발생률 예측 : EDA 이 예측의 목적은, feature와 같은 정보가 있을 때 어떤 종류의 범죄가 발생할 확률이 얼마인지 예측하는 것이다. 파이썬으로 진행하였고, 데이터 분석 강의 4주차를 마무리하고 캐글에 최종적으로 제출한 버전을 기반으로 코드를 설명했다. (중간 과정이 궁금하다면 github를 참고! github.com/helloMinji/Kaggle_crime_SanFrancisco ) helloMinji/Kaggle_crime_SanFrancisco [Kaggle] 샌프란시스코에서 발생한 범죄 종류 예측. Contribute to helloMinji/Kaggle_crime_SanFrancisco development by creating an account on GitHub. github.com 데이터 설명 Dates.. 더보기
모델 : LightGBM Light Gradient Boosting Machine (LightGBM) 1. 특징 머신러닝 부스팅 알고리즘 중 하나로, 가중치를 경사하강법으로 진행한다. ※ 머신러닝 부스팅 알고리즘: 앙상블 부스팅 기법으로, 틀린 부분에 가중치를 더하면서 진행하는 알고리즘. machine learning ensemble, ensemble boosting 등이 있다. ※ 경사하강법: 1차 근삿값 발견용 최적화 알고리즘. 기본 개념은 함수의 기울기(경사)를 구하고, 경사의 절댓값이 낮은 쪽으로 계속 이동시켜 극값에 이를 때까지 반복시킨다. leaf wise 트리분할 트리의 균형을 맞추지 않고 특정 리프 노드를 지속적으로 분할하여, 깊이가 늘어난 트리 생성. 어떤 리프 노드를 분할할까? max delta loss 값을 .. 더보기
PowerBI 프로젝트 : 보고서 - 구 단위 2 시각화4 꺾은선형 차트 1) 월별 생활인구 날짜 계층을 바꾸면 분기, 년도 별로도 확인이 가능하나 유의미한 상태가 월별이라고 판단하여 월로 고정하였다. 월별 서울시 구의 생활인구는 위와 같고, 마포구, 강남구, 서초구의 생활인구가 많음을 알 수 있다. 필드 축: (Calendar) Date, 월, 일 테이블 내에는 Date 컬럼만 있는데, 그걸 필드-축으로 끌고 오면 v 표시가 생긴다. 해당 표시를 클릭하여 날짜 계층을 선택하면 월, 일이 생긴다. 범례: (행정동코드) 시군구명 - 색을 임의로 지정할 수 없고, 범례에 따라 무작위로 선택된다. 다른 시각화 개체를 생성하면 같은 범례값끼리는 같은 색으로 나온다. 값: (생활인구) 평균생활인구수/24개 생활인구 테이블 내에 생활인구수/24 컬럼 생성: 생활인.. 더보기
Python : csr_matrix (데이터의 수를 줄이는 방법) 5 7 1 4 2 3 6 2 1 6 4 5 7 희소행렬: 대부분의 값이 0. 이런 희소행렬을 메모리 낭비가 적도록 변환하고자 한다! → CSR 형식을 사용! ▶ 필요한 패키지 불러오기 from scipy.sparse import csr_matrix import numpy as np ▶ 0이 아닌 데이터 추출 data = np.array([5,7,1,4,2,3,6,2,1,6,4,5,7]) 첫번째 행부터 왼쪽에서 오른쪽으로 순서대로 0이 아닌 값을 리스트에 넣는다. ▶ 열 위치 col_pos = np.array([2,5,0,1,3,4,5,1,3,0,3,5,0]) 첫번째 행부터 왼쪽에서 오른쪽으로 순서대로 0이 아닌 값의 열 위치를 리스트에 넣는다. (열 번호는 0번부터 시작) ▶ 행 위치 값에 대해 고유한 .. 더보기
Python : (pandas) One- hot encoding ※ 매번 비슷한 내용을 구글링하는 것에 답답해서 항목별로 정리하는 글 ? One-hot encoding ? 하나의 값만 Hot(True, 1)고, 나머지 값은 모두 Cold(False, 0)로 만드는 인코딩 데이터프레임의 특정 컬럼을 one-hot encoding 하고 싶어 : get_dummies (use pandas!) pd.get_dummies(df["column_name"], prefix = '접두사', drop_first = True) prefix: 새로 생기는 더미 컬럼들에 어떤 접두사를 붙일건지 (option) drop_first: 더미 컬럼 중 첫번째 컬럼을 자동삭재 → 더미 컬럼을 만들 경우 n-1개만 있어도 모든 값을 설명 가능하므로 1개를 없앤다 ( dummy trap을 없앤다! ) 더보기
Python : 데이터분석 - 모델 평가 ※ 매번 비슷한 내용을 구글링하는 것에 답답해서 항목별로 정리하는 글 모델이 얼마나 정확히 예측했는지 확인하기 위해서는 평가를 진행해야 한다. 모델에 test x를 이용하여 예측한 test y는 제대로 예측했는지 비교할 대상이 없으므로, train 데이터를 일정 비율로 나눠 일부분은 모델의 학습에, 다른 부분은 모델의 예측에 활용한 뒤 각각 y를 비교해본다. ▶ 평가를 위해 데이터 나누기 from sklearn.model_selection import train_test_split train 데이터를 train_kf, test_kf로 나누는데 사용되는 패키지 데이터를 원하는 비율로 나눠준다 X_train_kf, X_test_kf, y_train_kf, y_test_kf = train_test_split(.. 더보기
Python : 데이터분석 - 모델 생성 및 예측 ※ 매번 비슷한 내용을 구글링하는 것에 답답해서 항목별로 정리하는 글 ▶ 모델 생성을 위한 raw train set, raw test set 분석을 위한 데이터를 불러와서 train, test라는 데이터프레임에 저장하였다. ▶ feature와 label feature_names : 모델 생성에 사용할 컬럼 리스트 - 리스트에 포함되는 컬럼들은 전처리를 통해 이상치를 제거하고, 분석에 용이한 형태로 만든다. label_name : y에 해당하는 컬럼 ▶ 모델 생성을 위한 train set, test set X_train = train[feature_names] X_test = test[feature_names] y_train = train[label_name] ▶ 모델 생성 model.fit(X_train.. 더보기
Python : 데이터 시각화 ※ 매번 비슷한 내용을 구글링하는 것에 답답해서 항목별로 정리하는 글 ▶ 시각화에 필요한 패키지 import seaborn as sns matplotlib을 기반으로 하는 파이썬 시각화 패키지 실습용 데이터를 내장하고 있음 import matplotlib.pyplot as plt 파이썬에서 자료를 차트(chart)나 플롯(plot)으로 시각화(visulaization)하는 패키지 정형화된 차트나 플롯 이외에도 저수준 api를 사용한 다양한 시각화 기능을 제공 ▶ 한번에 여러 그래프를 보여주고 싶어 figure, ( (ax1, ax2, ax3) , (ax4, ax5, ax6) ) = plt.subplots(nrows = 2, ncols = 3) subplot과 달리 한번에 설정을 결정할 수 있다. ▶ fi.. 더보기