빅분기 실기 필요 함수 정리

ilysm·2023년 6월 18일

모델링 함수

from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.ensemble import RandomForestRegressor
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.linear_model import Logistic Regression
from xgboost import XGBClassifier

인코딩 함수

from sklearn.preprocessing import LabelEncoder
encoder=LabelEncoder()
encoder.fit(X_train[''])
b=encoder.transform(X_train[''])
X_train['']=b

스케일링 함수

from sklearn.preprocessing import MinMaxScaler
scalar=MinMaxScaler()
scaled=scalar.fit_transform(X_train)

fron sklearn.preprocessing import StandardScaler
scaler=StandardScaler()
scaled=scaler.fit_transform(X_train)

모델 평가 함수

from sklearn.metrics import rou_auc_score

model 직접 평가

y_pred=model.predict(X_test)
model.score(X_test, y_test)

데이터 프레임 바꾸기

df.drop(labels='col2',axis=1)

데이터 프레임 정렬

df.sort_values('col2')

소수점 올림 내림 버림

import numpy as np
올림: np.ceil()
내림: np.floor()
버림: np.trunc()

특정 열 기준으로 중복제거 하고 앞에 남기기

df.drop_duplicates(subset=['age'], keep='first')

인덱스 초기화

df = df.reset_index()

한주, 한달 단위로 끊기 (단 인덱스가 날짜)

df = pd.read_csv("../input/bigdatacertificationkr/basic2.csv")
df['Date'] = pd.to_datetime(df['Date'])
df = df.set_index('Date')
df_w = df.resample('W').sum()
df_w.head() 32532753

데이터 프레임 결합

pd.merge(b1,b3, left_on='f4',right_on='f4', how='left')

구간 분할하기

df['range'] = pd.qcut(df['age'], q=3, labels=['group1','group2','group3'])

소수점 첫째자리 까지 출력

반올림

round(x,1)
round(abs(holiday-work),2)

일반

a = "소수점 둘째자리 까지 출력 : {:.2f}".format(answer)
print(a)

상관관계 구하기

df_corr=df.corr(method='pearson')
df_corr['quality'].apply(lambda x: abs(x)) # 절대값을 취해줘야함

누적합 구하기

8번 다시 풀어보기
dfm['cumsum']=dfm['f1'].cumsum()

### 결측치는 뒤에 값으로 채우기
df['f1'].fillna(method='bfill')

power_transform

10번 다시 풀어보기
from sklearn.preprocessing import power_transform

groupby하고 가져오기

6번 다시 풀어보기 
df_final.iloc[0]['f1']

첨도, 왜도, 로그스케일링

문제 4번
df['name'].kurt() # 첨도
df['name'].skew() # 왜도
np.log1p(df['name']) # 로그 스케일링

주의점

내림차순 오름차순 잘 구분해서 보기

다시 풀어보기

18번 - 나는 from datetime import datetime, date 사용해서 풀었음
today= datetime()
today.weekday() 하여 휴일 평일을 구분함

### 답안
df['year'] = df['Date'].dt.year
df['month'] = df['Date'].dt.month
df['day'] = df['Date'].dt.day
df['dayofweek'] = df['Date'].dt.dayofweek

작업형 2유형 정리

  1. df.info() 확인하여 결측치 보기
  2. df.describe() 확인하여 이상치 확인
  3. 결측치, 이상치 대체 -> 최빈값 이나 평균값 이상치가 많다면 중앙값, 이상치는 iqr 최소 최대로 대체
  4. 범주형, 연속형 나눠서 보기
  5. 범주형인 경우 LabelEncoder(), get_dummies
  6. 연속형인 경우 MinMaxScaler(), StandardScaler()
  7. train_test_split (train,val)
  8. train으로 학습하고 val로 검증해보기
  9. test 데이터 넣어서 y_pred(예측값) 출력하기
  10. test 데이터 아이디와 y_pred(예측값) 같이 데이터 프레임으로 출력하기
profile
한걸음씩 배워나갑니다

0개의 댓글