TIL 012 데이터 분석 부트 캠프 36일차 1. 아이템 기반 최근접 이웃 협업 필터링 (CF-KNN(item)) 협업 필터링 방식 (Collaborative Filtering) : 사용자 행동 양식만을 기반으로 추천을 수행하는 것 → 친구들에게 물어보는 것! 축적된 사용자 행동 데이터를 기반으로 사용자가 아직 평가하지 않는 아이템을 예측하여 평가 하는 것 최근접 이웃 방식 (KNN)과 잠재 요인 방식(MF)로 나뉨 → 사용자-아이템 평점 행렬 데이터 기반! 사용자 기반 : 당신과 비슷한 관객들이 다음 영화도 관람 아이템 기반 : 이 영화를 본 다른 관객들은 다음 영화도 관람 (일반적으로 정확도가 더 높음) 실습 : github 2. MF 기반 잠재 요인 협업 필터링 사용자-아이템 평점 매트릭스 속의 ..
TIL 011 데이터 분석 부트캠프 35일차 1. 구매 요인 분석 (Decision Tree) 판매 여부 예측 및 각 변수의 영향도 확인 Decision Tree Logistic Regression 비모수 모델 (비선형 관계도 됨) 모수 모델 (선형 관계만) Feature power 부실 (feature importance 있긴 함) Feature power 잘 나타냄 (Coefficient, p-value, R-square) 범주형 변수 그대로 사용 가능 (그래도 하는게 좋음) 범주형 변수 원핫 인코딩 필요 피쳐의 특정 항목을 하나로 나타내는 방법 : 고민 해결!! # Black 종류를 하나로 통합시켜줄 함수 작성 (A) def black(x): if x == 'Midnight Black'..
TIL day 10 데이터 분석 boot camp 34일차 1. 고객별 연간 지출액 예측 실습(Linear regression) linear regression으로 E-Commerce 고객별 연간 지출액 예측 sns.pairplot(data) : 상관관계 시각화 통계량 해석 R-squared : 모델의 설명력 클수록 좋은 모델 (0.8이상이면 괜찮다고 본다.) Adj. R-squared는 변수의 갯수까지 고려한 통계량으로 이게 더 중요 coefficient : 각 독립변수의 영향력 (회귀계수) 특정 독립 변수의 결정계수가 클수록 독립변수의 변화에 종속 변수가 크게 영향 받음 따라서 scale을 맞춘 다음 coef를 평가해야 한다. P-value : 검증 결과의 신뢰도에 대한 기준 0.05 이하면 통계적으..
데이터 분석 boot camp day 33 1. 머신러닝까지 중간평가 2. 조별 간이 프로젝트 진행해보기 Dacon 영화 관객 예측 대회 연습 Dacon 영화 관객 예측 대회 연습 Dacon_practice repository로 따로 저장하자! feature engineering의 중요성 : 범주형 피쳐 인코딩, 결측값 처리 → 접근하는 아이디어가 생각보다 중요하다. pycaret 설치 및 document 공부 : pycaret document 결국 ML/DL 알고리즘 모두 data-driven 이므로 전처리 단계와 피쳐 엔지니어링이 지금은 더 중요한 것 같다. 3. 대기업 화학회사 Computer Vision 현직자 특강 아직 CV는 커녕 딥러닝을 공부하지 않아서 알아듣기 힘들었다... 꾸준히 대회에 ..
pandas를 이용한 데이터 분석이나 ML/DL 알고리즘 적용 시에 사전 단계로 EDA를 실시할 때 획기적인 패키지가 존재한다. 처음 pandas를 이용해 데이터프레임을 요리조리 뜯어 볼 때에는 상관관계며, 데이터 타입이며, 기술 통계량이며 하나씩 코드를 입력해서 공부하는 과정을 거쳤다. 하지만, 실제 업무나 kaggle, dacon 대회에 참여할 때에 EDA를 간략하고 빠르게 수행하기 위해서 pandas profiling 패키지를 사용하는 것이 효율적이다. profiling 패키지는 판다스 데이터프레임 타입의 자료의 프로필 리포트를 작성해주는 패키지이다. describe() 의 기술통계량을 넘어서 상관관계 부터 최빈값, 결측값, 히스토그램 까지 한번에 HTML로 작성해서 보여준다. Type infere..
kitchen_qual_map = { 'Fa': 0, 'TA': 1, 'Gd': 2, 'Ex': 3 } df['Kitchen Qual'] = df['Kitchen Qual'].map(kitchen_qual_map) df['Kitchen Qual'].head(10)
GridSearchCV : 교차검증 + 하이퍼 퍼라미터 튜닝 하이퍼 파라미터 튜닝을 위한 그리드 서치와 교차평가(CV)를 한번에 할 수있는 Sklearn api 지정한 하이퍼 파라미터를 순차적으로 입력하면서 최적의 파라미터를 도출할 수 있음 그리드 서치 경우의 수 x CV 횟수 만큼의 학습과 평가가 이루어짐 최적의 파라미터를 편리하게 찾을 수 있지만 수행시간이 상대적으로 오래걸림 GridSearchCV(estimator, param_grid, scoring=None, refit=True, cv=None) estimator : classifier, regressor, pipeline param_grid : 그리드 서치로 튜닝할 하이퍼 파라미터를 딕셔너리 형태로 넣음 scoring : 평가지표 cv : 교차..
KFold 교차 검증을 간편하게 할 수있는 사이킷런의 교차검증 API KFold 데이터 학습과 예측 프로세스 폴드 세트를 설정 for문을 통해 학습 및 테스트 데이터의 인덱스를 추출 반복하면서 학습과 예측수행하고 평겨 결과 반환 cross_val_score() 를 쓰면 한번에 해결 가능하다. → 폴드 세트 추출, 학습 및 예측, 평가 과정들을 한번에 수행 from sklearn.model_selection import cross_val_score cross_val_score(estimator,X,y=None, scoring=None, cv=None, n_jobs=1, verbose=0, fit_params=None, pre_dispatch='2*n_jobs') - estimator : classifier..
머신러닝, 딥러닝 시 Scikit-learn에서 데이터 분할에 사용되는 train_test_split() 메서드를 pandas dataframe 또는 seires 형태의 데이터에 적용해보자. train_test_split은 sklearn.model_selection 모듈에 포함되어 있다. 우선 피쳐들로 데이터 프레임을 구성한 뒤 마지막 컬럼에 타겟을 덧붙여 dataframe으로 구성한다. 그 후 iloc 인덱싱을 통해 피쳐와 타겟을 정의한 뒤 train_test_split() 적용하면 끝. from sklearn.model_selection import train_test_split from sklearn.datasets import load_iris # 사이킷런 아이리스 내장 데이터 로드 import ..
# 그래프에서 마이너스 폰트 깨지는 문제에 대한 대처 from matplotlib import font_manager, rc import platform rc('font', family='AppleGothic') import platform if platform.system() == 'Windows': # 윈도우인 경우 font_name = font_manager.FontProperties(fname="c:/Windows/Fonts/malgun.ttf").get_name() # 한글 폰트 깨지는 겨우 rc('font', family=font_name) else: # Mac 인 경우 rc('font', family='AppleGothic') import matplotlib as mpl # 그래프에서 마이너..