Python 34

데이터 전처리 - 스케일링

1. 피처 스케일링 - 표준화 : 데이터의 피처 각각의 평균이 0이고 분산이 1인 가우시안 정규 분포를 가진 값으로 변환하는 것 의미(zero-centered) - 정규화 : 서로 다른 피처의 크기를 통일하기 위해 크기를 변환해주는 개념 2. StandardScaler : 평균이 0이고, 분산이 1인 정규 분포 형태로 변환 3. MinMaxScaler : 데이터 값을 0과 1사이의 범위 값으로 변환(음수값이 있으면 -1에서 1값으로 변환) StandardScaler from sklearn.datasets import load_iris import pandas as pd # 붓꽃 데이터 셋을 로딩하고 DataFrame으로 변환합니다. iris = load_iris() iris_data = iris.data..

Python 2024.04.03

교차 검증 : 성능평가 함수와 하이퍼 파라미터 튜닝

교차검증 간편하게 : cross_val_score() 폴드 세트 추출, 학습/예측, 평가를 한번에 수행 GridSearchCV - 교차 검증과 최적 하이퍼 파라미터 튜닝을 한번에 from sklearn.datasets import load_iris from sklearn.tree import DecisionTreeClassifier from sklearn.model_selection import GridSearchCV, train_test_split from sklearn.metrics import accuracy_score # 데이터를 로딩하고 학습데이타와 테스트 데이터 분리 iris = load_iris() X_train, X_test, y_train, y_test = train_test_split(..

Python 2024.04.02

데이터 전처리 - 인코딩 개요 및 실습

- 데이터 클린징 - 결손값 처리(Null/NaN 처리) - 데이터 인코딩(레이블, 원-핫 인코딩) - 데이터 스케일링 - 이상치 제거 - Feature 선택, 추출 및 가공 모든 데이터는 숫자형으로 표현되어야 함. 레이블 인코딩 LabelEncoder 클래스 fit()과 transform()을 이용하여 반환 원-핫(One-Hot) 인코딩 피처 값의 유형에 따라 새로운 피처를 추가해 고유 값에 해당하는 컬럼에만 1을 표시하고 나머지 컬럼에는 0을 표시하는 방식 OneHotEncoder 클래스 fit()과 transform()을 이용하여 변환. 인자로 2차원 ndarray 입력 필요. Sparse 배열 형태로 변환되므로 toarray()를 적용하여 다시 Dense형태로 변환되어야 함. pd.get_dumm..

Python 2024.03.27

scikit-learn : 붓 품종 예측하기

붓꽃 예측을 위한 사이킷런 필요 모듈 로딩 from sklearn.datasets import load_iris from sklearn.tree import DecisionTreeClassifier from sklearn.model_selection import train_test_split # 학습/테스트 데이터를 나눌수 있는 모델 데이터 세트 로딩 import pandas as pd # 붓꽃 데이터 세트를 로딩합니다. iris = load_iris() # iris.data는 Iris 데이터 세트에서 피처(feature)만으로 된 데이터를 numpy로 가지고 있습니다. iris_data = iris.data # iris.target은 붓꽃 데이터 세트에서 레이블(결정 값) 데이터를 numpy로 가지고 ..

Python 2024.03.26

scikit-learn 소개 및 머신러닝 개요

1. 머신러닝을 위한 매우 다양한 알고리즘과 개발을 위한 편리한 프레임워크와 API 제공 2. Numpy와 Scipy 기반 위에서 구축된 라이브러리 사이킷런을 이용한 붓꽃 데이터 분류 붓꽃 데이터 세트로 붓꽃의 품종을 분류(Classification)하는 꽃잎의 길이와 너비, 꽃받침의 길이와 너비 피처를 기반으로 꽃의 품종을 예측하기 위함 피처(Feature), 속성 데이터 세트의 일반 속성 머신러닝은 2차원 이상의 다차원 데이터에서도 많이 사용되므로 타겟값을 제외한 나머지 속성을 모두 피처로 지칭 레이블(Lable),클래스,타겟(값),결정(값) 타겟값 또는 결정값은 지도 학습 시 데이터의 학습을 위해 주어지는 정답 데이터. 지도 학습 중 분류의 경우에는 이 결정값을 레이블 또는 클래스로 지칭. 지도학습..

Python 2024.03.26

데이터 핸들링 - 판다스

shape DataFrame의 Row와 Column 크기를 가지고 있는 속성 describe() 데이터 값들의 평균, 표준편차, 4분위 분포도를 제공. 숫자형 컬럼들에 대해서 해당 정보를 제공 value_counts() 개별 데이터 값에 대한 분포도 제공. 넘파이 ndarray, 리스트, 딕셔너리를 DataFrame으로 변환하기 import numpy as np col_name1=['col1'] list1 = [1, 2, 3] array1 = np.array(list1) print('array1 shape:', array1.shape ) df_list1 = print('1차원 리스트로 만든 DataFrame:\n', df_list1) df_array1 = pd.DataFrame(array1, column..

Python 2024.03.25

User Segmentation - retail data - 4 CLTV Prediction - BetaGeoFitter

Recency : 고객의 마지막 거래 날짜에서 처음 거래 날짜를 나누어 계산 T : 거래 분석 날짜에서 처음 거래 날짜까지의 시간 Frequency : 구매 빈도 Monetary : 거래 금액 CLTV를 계산하기 위한 데이터프레임 생성 CLTV는 고객의 평생 가치를 의미 -> 고객이 회사에게 제공할 가치 예측에 활용 df['InvoiceDate'] = pd.to_datetime(df.InvoiceDate, format='%m/%d/%Y %H:%M') cltv_df=df.groupby("CustomerID").agg({"InvoiceDate": [lambda date: (date.max()-date.min()).days, lambda date: (analysis_date - date.min()).days]..

Python 2024.03.23

User Segmentation - retail data - 3 Visualization 시각화

총 수익 Quantity와 UnitPrice열을 곱하고 TotalRevenue열 생성. 제품별 그룹화 후 총 수익 계산 # Calculate the total revenue generated by each product df['TotalRevenue'] = df['Quantity'] * df['UnitPrice'] product_revenue = df.groupby('Description')['TotalRevenue'].sum().sort_values(ascending=False) # Display the top 10 products by total revenue generated top_10_revenue = product_revenue.head(10) top_10_revenue # Plotting p..

Python 2024.03.23