AI SCHOOL 58

[Python] 코딩도장

1 - 2 1차원의 점들이 주어졌을 때, 그 중 가장 거리가 짧은 것의 쌍을 출력하는 함수를 작성하시오. (단 점들의 배열은 모두 정렬되어있다고 가정한다.) 예를들어 S={1, 3, 4, 8, 13, 17, 20} 이 주어졌다면, 결과값은 (3, 4)가 될 것이다. 문제 링크: https://codingdojang.com/scode/408 SS = [3, 4, 8, 13, 17, 20] 여도 (3, 4) 둘 사이 거리는 1 이니까 ! [답] s = [3, 4, 8, 13, 17, 20] m = float('inf') index = 0 for i in range(len(s) - 1): #1 if (m > s[i+1] - s[i]) : # 우리가 쓴 가장 큰 수보다 작으면 인덱스를 기억 #2 index = ..

AI SCHOOL/Python 2023.03.31

[ML] RandomizedSearchCV

RandomizedSearchCV # 파라미터 지정 param_distributions = { # 100~300 사이의 랜덤한 정수값을 3개 array형태로 반환 'n_estimators' : np.random.randint(100, 300, 10), # 0.05 ~ 0.3 사이의 실수값 10개 uniform한 값(균일 분포) 반환 'learning_rate' : np.random.uniform(low=0.05, high=0.3, size=10)} reg1 = RandomizedSearchCV(model_gbr, parameters, n_iter=10, cv=5, n_jobs=-1, verbose=2, scoring='neg_root_mean_squared_error') n_iter : CV 가 검증을 ..

AI SCHOOL 2023.03.23

[ML] GridSearch / GradientBoostingRegressor

label smoothing - 모델이 과적합되는 것을 방지하고 일반화 능력을 향상시키는 데 도움 - 학습 속도를 늦추는 단점 train['count_log1p'] = np.log1p(train['count']) # 되돌릴 때 train['count_expm1'] = np.exp(train['count_log1p']) - 1 train[['count', 'count_log1p', 'count_expm1']].hist(bins = 50, figsize = (12, 4)) GradientBoostingRegressor - 앙상블 학습 방법 중 하나 - 초기 예측값을 생성한 후, 이를 통해 잔여 오차를 계산하여 이를 예측 모델에 추가로 학습시키는 방법을 사용 - 마치 오답노트를 공부하는 것과 비슷 from s..

AI SCHOOL 2023.03.19

[ML] ExtraTreesRegressor / 회귀 모델 평가 지표(MAE, MSE, RMSE, r2_Score)

Ordinal Encoding train['YME'] = train['YM'].astype('category').cat.codes ExtraTreesRegressor from sklearn.ensemble import ExtraTreesRegressor model = ExtraTreesRegressor(random_state=42) 평가 # R-squared(결정계수) from sklearn.metrics import r2_score r2_score(y_train, y_valid_predict) # MAE(Mean Absolute Error) # 틀린 값에 대한 절대값만 보고자 한다면 from sklearn.metrics import mean_absolute_error mean_absolute_error..

AI SCHOOL 2023.03.18

[ML] One hot Encoding / ExtraTreesClassifier / cross validation

- nunique 값이 2개인 칼럼은 binary encoding - 그 외의 문자형 칼럼은 one hot encoding binary encoding # nuni가 2인(변수가 두 개인) 피쳐 이름만 bicols라는 변수에 할당 nuni = df.drop(columns=label_name).nunique() bicols = nuni[nuni == 2].index # one hot encoding 하면 column이 더 생기니까 과적합 위험있음 # 그래서 boolean 으로 가능한건 한 column에서 해결 df["gender_bi"] = df["gender"] == "Male" for yes_col in ['Partner', 'Dependents', 'PhoneService', 'PaperlessBil..

AI SCHOOL 2023.03.18

[ML] one-hot encoding / Random Forest

Decision Tree의 단점 - overfitting: Decision tree는 학습 데이터에 과도하게 학습할 수 있어서, 과적합(overfitting)이 발생하기 쉬움 - 결정 경계의 수직/수평선 문제: Decision tree는 분류 경계를 수직 또는 수평선으로만 설정하기 때문에, 데이터가 대각선 방향으로 구분되는 경우 결정 경계를 잘 파악하지 못할 수 있음 - 불균형 데이터셋 처리 문제 - 연속형 변수 처리 문제: Decision tree는 연속형 변수를 처리하기에 적합하지 않습니다. 일반적으로 연속형 변수를 범주형 변수로 변환한 후에 사용해야 함 -> 이러한 단점 보완하기 위해 앙상블 기법 중 하나인 배깅 기법 사용한 랜덤포레스트 사용 Random Forest # RandomForestCla..

AI SCHOOL 2023.03.18

[ML] Decision Tree

Decision Tree # 모델 불러오기 from sklearn.tree import DecisionTreeClassifier model = DecisionTreeClassifier(criterion= 'entropy', random_state=42) # 학습하기 model.fit(X_train, y_train) # 예측하기 y_predict = model.predict(X_test) # 정확도 측정하기 (y_test == y_predict).mean() from sklearn.metrics import accuracy_score accuracy_score(y_test, y_predict) 데이터셋 확인 및 전처리 데이터셋: Telco Customer Churn - https://www.kaggle.c..

AI SCHOOL 2023.03.17

[ML] Clustering

머신러닝, 딥러닝에서 추상화된 도구(Scikit-learn, TensorFlow, PyTorch, Transformer, FastAI 등) 를 사용했을 때의 장점과 단점 - 장점 개발 시간 단축 정확성 향상(추상화된 도구는 일반적으로 더욱 정확한 모델을 구출 할 수 있도록 도움) 재사용성 - 단점 일반성 부족(추상화된 도구는 특정 프레임워크나 라이브러리에 종속될 수 있기 때문에 일반성 부족) 실제 동작의 이해 부족(추상화된 도구를 사용하면 모델의 동작 메커니즘을 완전히 이해하지 못할 수 있음) 일부 원하는 기능이 구현되어있지 않을 수 있으며 개발자가 구성할 수 있는 옵션이 적을 수 있음 지도학습과 비지도학습 - 지도학습 : 정답 (Label) 있는 데이터를 학습 분류 : 범주형 데이터를 각 class별로..

AI SCHOOL 2023.03.12

[Python] 비즈니스 데이터 분석(RFM)

RFM(Recency, Frequency, Monetary) - RFM은 가치있는 고객을 추출해내어 이를 기준으로 고객을 분류할 수 있는 방법 -> 마케팅에서 가장 많이 사용되고 있는 분석방법 중 하나 - RFM은 구매 가능성이 높은 고객을 선정하기 위한 데이터 분석 방법으로 이 과정을 통해 데이터는 의미있는 정보로 전환 Recency - 거래의 최근성: 고객이 얼마나 최근에 구입했는가? Frequency - 거래빈도: 고객이 얼마나 빈번하게 우리 상품을 구입했나? Monetary - 거래규모: 고객이 구입했던 총 금액은 어느 정도인가? - 현재 개발된 RFM 모형은 크게 4가지로 분류 가능 -> but, 정설은 아니며 신뢰하기 어려움을 전제로 참고 모델1. RFM 각 요소의 20% rule의 적용 모델..

AI SCHOOL/Python 2023.03.08

[Python] 비즈니스 데이터 분석(Online Retail Data Set)

비즈니스 데이터 분석 - 서비스의 특징에 따라 봐야하는 지표가 다르다. - 회원가입에 집중? 돈을 쓰는 고객에 집중? 신규 고객 유치에 집중? - 광고, 프로모션, 오프라인 행사 등 여러가지 마케팅을 실시 구독 서비스라면 이탈률이 중요한 지표 - ARPU(Average Revenue Per User, 앱 활동 사용자의 1인당 평균 결제 금액 = 매출 / 중복을 제외한 순수 활동 사용자 수) - ARPPU(Average Revenue Per Paying User, 유료 사용자 1인당 평균 결제 금액 = 매출 / 중복을 제외한 순수 유료 사용자 수) - MRR - ARR https://easytoread.tistory.com/entry/CAC-CPA-%EC%B0%A8%EC%9D%B4 【마케팅】 CAC, CP..

AI SCHOOL/Python 2023.03.07