본문 바로가기

머신러닝4

[ML] 머신러닝 최적화 방법, 경사하강법(Gradient Descent) 알아보기 / 확률적 경사하강법 1. 경사하강법(Gradient Descent) ? 머신러닝, 딥러닝 알고리즘 학습 시 사용되는 최적화 방법(Optimizer) 중 하나이다. 알고리즘 학습의 목표는 예측값과 실제값간의 차이인 손실함수의 크기를 최소화시키는 파라미터를 찾는것이다. 학습데이터 입력을 변경할 수 없으니까, 손실함수값의 변화에 따라 가중치(weight) 혹은 편향(bias)를 업데이트해야한다. ex) 가장 간단한 모델인 선형 회귀에서 cost를 최소화하기 위해 아래와 같이 코드를 작성 할 수 있다. optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.01) train = optimizer.minimize(cost) 1-1. 경사하강법 그래프 step1 : w1,w0를 .. 2022. 11. 7.
지수가중함수(EWM), 지수이동평균(EMA) 지수가중함수는 오래된 데이터에 지수감소를 적용하여 최근 데이터가 더 큰 영향을 끼지도록 가중치를 주는 함수이다. 보통 추가 메서드로 mean( ) 을 사용해서 지수가중평균으로 사용 DataFrame.ewm(com=None, span=None, halflife=None, alpha=None, min_periods=0, adjust=True, ignore_na=False, axis=0, times=None, method='single') 1. 지수이동평균(EMA) 과거의 모든 기간을 계산대상으로 하며 최근의 데이타에 더 높은 가중치를 두는 일종의 가중이동평균법이다. 단순이동평균의 계산법에 비해 복잡해 보이지만 실제로 이동평균을 산출하는 방법은 전일의 지수이동평균값과 평활계수(smoothing constant.. 2022. 10. 3.
[ML] 추천 시스템 개발을 위한 surprise 라이브러리 - 컨텐츠 기반 필터링 Surprise 추천 시스템 개발을 위한 라이브러리 다양한 모델과 데이터 제공 1. 간단한 Surprise 실습 from surprise import SVD # SVD 특이값분해 : 행렬을 대각화 from surprise import Dataset from surprise.model_selection import cross_validate # 다중평가지표 # 내장 데이터인 무비렌즈 데이터 로드 data = Dataset.load_builtin('ml-100k', prompt=False) data.raw_ratings[:10] # user_id item_id rating timestamp [out] [('196', '242', 3.0, '881250949'), ('186', '302', 3.0, '8917.. 2022. 10. 2.
[ML] DecisionTree모델 이용해서 붓꽃 품종 예측 / 사용자 행동 인식 Dataset Decision Tree(결정트리) ✔️ 장점 쉽다. 직관적이다. feature의 스케일링이나 정규화 등의 사전 가공 영향도가 크지 않음 ✔️ 단점 과적합으로 알고리즘 성능이 떨어진다. 이를 극복하기 위해 트리의 크기를 사전에 제한하는 튜닝 필요 결정트리 Parameter min_samples_split : 노드를 분할하기 위한 샘플 데이터 수로 과적합을 제어하는 사용됨 miin_samples_leaf : 말단 노드(lead)가 되기 위한 최소한의 샘플 데이터 수 max_feaures : 최적의 분할을 위해 고려할 최대 피처 개수 max_depth : 트리의 최대 깊이를 규정 max_leaf_nodes : 말단 노드(leaf)의 최대 개수 더이상 자식 노드가 없는 노드는 리프(leaf) 노드이다. 리프 .. 2022. 10. 2.