머신러닝 (14) 썸네일형 리스트형 머신러닝 심화과정(딥러닝) 머신러닝딥러닝공통점데이터로부터 가중치를 학습하여 패턴을 인식하고 결정을 내리는 알고리즘 개발과 관련된 인공지능(AI)의 하위 분야차이점데이터 안의 통계적 관계를 찾아내며 예측이나 분류를 하는 방법머신러닝의 한 분야로 신경세포 구조를 모방한 인공 신경망을 사용함 ■ 가중치 구하기 # 회귀 문제에서 최소화 하려는 값- Mean Squared Error(MSE) : 에러를 제곱한 총합의 평균- 가중치(weight)를 이리 저리 움직이면서 최소의 MSE를 도출해내면 된다.- 이렇게 최소화 하려는 값을 목적함수 또는 손실함수(cost function) 라고 한다. # 경사 하강법(Gradient Descent) : 모델의 손실함수를 최소화하기 위해 모델의 가중치를 반복적으로 조정하는 최적화 알고리즘 (+a 배치 .. 머신러닝 심화과정(회귀, 분류 모델링 심화) - 고객 세그멘테이션 실습(군집화) 고객 세그멘테이션(Customer Segmentation)다양한 기준으로 고객을 분류하는 기법. 주로 타겟 마케팅이라 불리는 고객 특성에 맞게 세분화 하여 유형에 따라 맞춤형 마게팅이나 서비스를 제공하는 것을 목표로 둔다. RFMR(Recency) : 가장 최근 구입 일에서 오늘까지의 시간F(Frequency) : 상품 구매 횟수M(Monetary value) : 총 구매 금액retail_df = pd.read_excel('C:/Users/user/Documents/ML/Online Retail.xlsx')retail_df.head(3)retail_df.info()retail_df.isnull().sum()retail_df.describe(include='all')# 구매 개수가 음수인 행 삭제cond1.. 머신러닝 심화과정(회귀, 분류 모델링 심화) - 비지도 학습(군집화) # 비지도 학습 : 답(Y)을 알려주지 않고 데이터 간 유사성을 이용해서 답(Y)을 지정하는 방법 K-Means Clustering 이론① K개 군집 수 설정② 임의의 중심을 선정③ 해당 중심점과 거리가 가까운 데이터를 그룹화④ 데이터의 그룹의 무게 중심으로 중심점을 이동⑤ 중심점을 이동했기 때문에 다시 거리가 가까운 데이터를 그룹화 (3~5번 반복)▶ 장점 - 일반적이고 적용하기 쉬움▶ 단점. - 거리 기반으로 가까움을 측정하기 때문에 차원이 많을 수록 정확도가 떨어짐 - 반복 횟수가 많을 수록 시간이 느려짐 - 몇 개의 군집(K)을 선정할지 주관적임 - 평균을 이용하기 때문에(중심점) 이상치에 취약함 ▷ Python 라이브러리sklearn.cluster.KMeans- 함수 입력 값n_cluster .. 머신러닝 심화과정(회귀, 분류 모델링 심화) - 최근접 이웃(KNN), 부스팅 K-Nearest Neighbor(KNN, KNN) ▶ 장점- 이해하기 쉽고 직관적- 모집단의 가정이나 형태를 고려하지 않음- 회귀, 분류 모두 가능함▶ 단점- 차원 수가 많을 수록 계산량이 많아짐- 거리 기반의 알고리즘이기 때문에 피처의 표준화가 필요함 ▷ Python 라이브러리sklearn.neighbors.KNeighborsClassifiersklearn.neighbors.KNeighborsRegressor ● 파라미터(Parameter) : 머신러닝 모델이 학습 과정에서 추정하는 내부 변수이며 자동으로 결정되는 값ex) 선형회귀에서 가중치와 편향(혼동주의) Python에서는 함수 정의에서 함수가 받을 수 있는 인자(입력 값)를 지정하는 개념 ● 하이퍼 파라미터(Hyper parameter) : 데.. 머신러닝 심화과정(회귀, 분류 모델링 심화) - 의사결정나무 / 랜덤 포레스트 의사결정나무(Decision Tree, DT)의사결정규칙을 나무 구조로 나타내어 전체 자료를 몇 개의 소집단으로 분류하거나 예측을 수행하는 분석 방법▶ 장점- 쉽고 해석하기 용이- 다중분류와 회귀에 모두 적용이 가능- 이상치에 견고하며 데이터 스케일링이 불필요(데이터의 상대적인 순서를 고려해서 - 어떤 기준으로 나뉘어짐)▶ 단점- 나무가 성장을 너무 많이하면 과대 적합의 오류에 빠질 수 있다.- 훈련 데이터에 민감하게 반응하여 작은 변화가 노이즈에도 나무의 구조가 크게 달라짐(불안정성) ▷ Python 라이브러리sklearn.tree.DecisionTreeClassifiersklearn.tree.DecisionTreeRegressor ● 타이타닉 예시→ 성별을 기준으로 의사결정나무 시각화루트 노드(Roo.. 머신러닝 심화과정(데이터분석 프로세스) - 실습하기, 교차검증, GridSearch # titanic 데이터를 이용한 데이터분석 프로세스1. 데이터 로드 & 분리 ● train / test 데이터 분리2. 탐색적 데이터 분석(EDA) ● 분포확인 & 이상치 확인3. 데이터 전처리 ● 결측치 처리 - 수치형: Age - 범주형: Embarked - 삭제 : Cabin, Name ● 전처리 - 수치형: Age, Fare, Sibsp+Parch - 범주형 ▶ 레이블 인코딩: Pclass, Sex ▶ 원- 핫 인코딩: Embarked4. 모델 수립5. 평가import pandas as pdimport numpy as npimport seaborn as snsimport matplotlib.pyplot as plt# 데이터가.. 머신러닝 심화과정(데이터분석 프로세스) - 데이터 분리 과적합과대적합(Overfitting)이란데이터를 너무 과도하게 학습한 나머지 해당 문제만 잘 맞추고 새로운 데이터를 제대로 예측 혹은 분류하지 못하는 현상 예측 혹은 분류를 하기 위해서 모형을 복잡도를 설정 - 모형이 지나치게 복잡할 때 : 과대 적합이 될 수 있음 - 모형이 지나치게 단순할 때 : 과소 적합이 될 수 있음 과적합의 원인 - 모델의 복잡도(상기의 예시) - 데이터 양이 충분하지 않음 - 학습 반복이 많음(딥러닝의 경우) - 데이터 불균형(정상환자 - 암환자의 비율이 95: 5) 과적합 해결▶ 학습 데이터(Train Data) : 모델을 학습(fit)하기 위한 데이터▶ 테스트 데이터(Test Data) : 모델을 평가 하기 위한 데이터# 함수 및 파라미터sklearn.model_select.. 머신러닝 심화과정(데이터분석 프로세스) - 데이터 전처리(인코딩, 스케일링) 인코딩어떤 정보를 정해진 규칙에 따라 변환하는 것(↔ 디코딩)- 범주형 자료에 대한 전처리 1. 레이블 인코딩(Label Encoding)▶ 문자열 범주형 값을 고유한 숫자로 할당(1등급 → 0 2등급 → 1 3등급 → 2)▶ 장점 : 모델이 처리하기 쉬운 수치형으로 데이터 변환 단점 : 실제로는 그렇지 않은데, 순서 간 크기에 의미가 부여되어 모델이 잘못 해석 할 수 있음# 사용 함수sklearn.preprocessing.LabelEncoderfit: 데이터 학습transform: 정수형 데이터로 변환fit_transform: fit과 transform을 연결하여 한번에 실행inverse_transform : 인코딩된 데이터를 원래 문자열로 변환# 속성classes_: 인코더가 .. 머신러닝 심화과정(데이터분석 프로세스) - 데이터 전처리(이상치, 결측치) 이상치(Outlier)1. ESD(Extreme Studentized Deviation)를 이용한 이상치 발견 - 데이터가 정규분포를 따른다고 가정할 때, 평균에서 표준편차의 3배 이상 떨어진 값 - 모든 데이터가 정규 분포를 따르지 않을 수 있기 때문에 다음 상황에서는 제한됨 → 데이터가 크게 비대칭일 때( → Log변환 등을 노려볼 수 있음) → 샘플 크기가 작을 경우# ESD를 이용한 이상치 처리import numpy as npmean = np.mean(data)std = np.std(data)upper_limit = mean + 3*stdlower_limit = mean - 3*std 2. IQR(Inter Quantile Range)를 이용한 이상치 발견 - box plot → .. 머신러닝 심화과정(데이터분석 프로세스) - 데이터 수집, EDA 1. 데이터 수집Data SourceOLTP Database: OnLine Transaction Processing 은 온라인 뱅킹,쇼핑, 주문 입력 등 동시에 발생하는 다수의 트랜잭션(데이터베이스 작업의 단위) 처리 유형Enterprise Applications: 회사 내 데이터 (ex 고객 관계 데이터, 제품 마케팅 세일즈, 입사, 연봉)Third - Party: Google Analytics와 같은 외부소스에서 수집되는 데이터(제 3자로부터 가져오는 데이터)Web/Log: 사용자의 로그데이터Data Lake: 원시 형태의 다양한 유형의 데이터를 저장Data Warehouse: 보다 구조화된 형태로 정제된 데이터를 저장Data Marts: 회사의 금융, 마케팅, 영업 부서와 같이 특정 조직의 목적을 .. 이전 1 2 다음