<aside> <img src="/icons/gradebook_gray.svg" alt="/icons/gradebook_gray.svg" width="40px" /> 핵심 요약

필수 암기 라이브러리

라이브러리 설명
from sklearn.impute import SimpleImputer 결측치 대치법에 사용, (strategy=’대치기준’)
from sklearn.model_selection import train_test_split train, test 데이터 분리 시 사용, (X, y, test_size, random_state)
from sklearn.preprocessing import LabelEncoder 범주형 종속 변수 라벨 인코딩 전처리 시 사용
from sklearn.preprocessing import OrdinalEncoder 범주형 독립 변수 라벨 인코딩 전처리 시 사용, (handle_unknown=’use_encoded_value’, umknown_value=-1)
from sklearn.preprocessing import OneHotEncoder 범주형 변수 원-핫 인코딩 전처리 시 사용, (sparse_output=False, handle_unknown='ignore')
from sklearn.ensemble import RandomForestRegressor 랜덤 포레스트 모델 불러올 때 사용
from skleran.metrics import mean_squared_error RMSE, MSE 평가지표 계산 시 사용, (squared=False) → RMSE
from sklearn.metrics import f1_score F1 score, Macro F1 Score 평가지표 계산 시 사용, (average=’macro’) → Macro F1 Score
from sklearn.metrics import r2_score R^2 결정 계수 계산 시 사용
from sklearn.metrics import roc_auc_score AUC 계산시 사용, 이후 predict_proba로 예측 [:, 1]
from scipy.stats import ttest_ind 이표본 t-test 검정 시 사용
from scipy.stats import ttest_rel 대응표본 t-test 검정 시 사용
from scipy.stats import f_oneway ANOVA 검정 시 사용
from scipy.stats import kstest, norm k-s 검정 시 사용, kstest(data[’work_hours’], ‘norm’, args=(mean_work_hours, std_work_hours)
from scipy.stats import wilcoxon 부호순위 검정 시 사용
from scipy.stats import kruscal 크루스칼-왈리스 검정 시 사용
from scipy.stats import chi2_contigency 카이제곱 검정 시 사용, pd.crosstab(), chi2, p, dof, expected = chi2_contigency(crosstab)
from scipy.stats import pearsonr 피어슨 상관계수 계산 시 사용
from statsmodels.formula.api import ols 다중 선형 회귀 모델 불러올 때 사용
from statsmodels.formula.api import logit 로지스틱 회귀 모델 불러올 때 사용
-2*model.llf residual deviance 계산
from scipy import stats stats.ttest_1samp(data[’score’], population_mean)
</aside>

<aside> <img src="/icons/aquarius_gray.svg" alt="/icons/aquarius_gray.svg" width="40px" /> 강의 목차

</aside>

<aside> <img src="/icons/forward_gray.svg" alt="/icons/forward_gray.svg" width="40px" /> 내용 정리

8회 1유형 2번에 1, 3

[1] 작업형 1유형

제 1유형 소개

제 1유형 시험 환경 및 제출 관련 내용

주요 개념

1) 데이터 프레임 인덱싱

  1. [] 연산자를 활용한 방법

    mydata['gender'] # mydata 데이터 프레임의 gender 열에 접근
    mydata[['gender', 'midterm']] # mydata 데이터 프레임의 gender, midrterm 열에 접근
    mydata[mydata['midterm'] <= 15] # mydata 데이터 프레임에서 mydata 데이터 프레임의 midterm 열의 값이 15이하인 데이터만 선택
    
  2. .iloc[] 를 활용한 방법

    mydata.iloc[:, 0] # mydata 데이터 프레임의 전체 행, 0번째 열만 선택
    mydata.iloc[:, [0, 1]] # mydata 데이터 프레임의 전체 행, 0번째 열, 1번째 열만 선택
    
  3. loc[] 를 활용한 방법

    mydata.loc[mydata['midterm'] <= 15] # mydata[mydata['midterm'] <= 15] 과 동일
    mydata.loc[mydata['midterm'] <= 15, :] # 위와 동일
    mydata.loc[mydata['midterm'] <= 15, ['student_id', 'final']] # mydata 데이터 프레임에서 mydata 데이터 프레임의 midterm 열의 값이 15이하인 student_id, final 열 데이터만 선택
    
  4. isin([]) 을 활용한 방법

    mydata.loc[mydata['midterm'].isin([28, 38, 52])] # mydata 데이터 프레임에서 mydata 데이터 프레임의 midterm 열의 값이 28, 38, 52인 행만 필터링
    mydata.loc[mydata['midterm'].isin([28, 38, 52]), ['student_id', 'final']] # mydata 데이터 프레임에서 mydata 데이터 프레임의 midterm 열의 값이 28, 38, 52인 행, student_id, final 열 데이터만 필터링
    mydata.loc[~mydata['midterm'].isin([28, 38, 52])] # mydata 데이터 프레임에서 mydata 데이터 프레임의 midterm 열의 값이 28, 38, 52가 아닌 행만 필터링
    

2) 결측치 처리

  1. 완전한 표본 체크하기

    mydata['gender'].isna().sum() # mydata 데이터 프레임의 gender 열의 결측치 개수 반환
    mydata.isna().sum() # mydata 데이터 프레임의 전체 열별 결측치 개수 반환
    
  2. 결측치가 제거된 데이터 프레임 얻기

    new_data = mydata.dropna() # mydata 데이터 프레임에서 na 값이 하나이상 포함된 행 데이터 모두 제거한 데이터 프레임 반환, new_data에 대입
    
  3. 결측치 대치하기

    df1 = mydata.copy() # mydata 데이터 프레임 깊은 복사
    df1['midterm'].fillna(df1['midterm'].mean(), inplace=True) # df1 데이터 프레임의 midterm 열의 결측치를 df1 데이터 프레임의 midterm 열의 평균값으로 채우기, inplace=True는 대입 X
    
    # 여기부터는 새로 깊은 복사했다고 가정
    df1['gender'].fillna(df1['gender'].mode(), inplace=True) # df1 데이터 프레임의 gender 열의 결측치를 df1 데이터 프레임의 gender 열의 최빈값으로 채우기, inplace=True는 대입 X
    df1['midterm'].fillna(0, inplace=True) # df1 데이터 프레임의 midterm 열의 결측치를 0으로 채우기, inplace=True는 대입 X
    df1['gender'].fillna(method='ffill', inplace=True) # df1 데이터 프레임의 gender 열의 결측치를 바로 이전 행의 값으로 채우기, inplace=True는 대입 X
    df1['gender'].fillna(method='bfill', inplace=True) # df1 데이터 프레임의 gender 열의 결측치를 바로 다음 행의 값으로 채우기, inplace=True는 대입 X
    
    # scikit-learn의 SimpleImputer 모듈을 이용해서 df1 데이터 프레임의 midterm 열의 결측치를 df1 데이터 프레임의 midterm 열의 평균값으로 채우기
    from sklearn.impute import SimpleImputer
    imputer_mean = SimpleImputer(strategy='mean')
    df1['midterm'] = imputer_mean.fit_transform(df1[['midterm']]) 
    

3) 구성원소 변경 및 추가

  1. [] 사용하여 새로운 열 추가 및 변경하기

    mydata['total'] = mydata['midterm'] + mydata['final'] # mydata 데이터 프레임의 midterm 열의 값과 final 열의 값을 더한 total 열 새로 생성
    

4) 데이터 정렬하기

  1. 특정 열 기준으로 데이터 프레임 정렬하기 (기본값은 오름차순)

    sorted_df = df.sort_values(by='bill_length_mm', ascending=False) # df 데이터 프레임을 bill_length_mm의 값을 기준으로 내림차순으로 정렬
    

5) 최대값, 최소값 찾기

  1. 최대값 찾기

    max_idx = df['bill_length_mm'].idxmax() # df 데이터 프레임의 bill_length_mm 열의 최댓값을 가지는 데이터의 index를 반환
    df.loc[max_idx] # 최대값의 인덱스로 df 데이터 프레임의 bill_length_mm 열의 최대값 출력
    
  2. 최소값 찾기

    max_idx = df['bill_length_mm'].idxmin() # df 데이터 프레임의 bill_length_mm 열의 최소값을 가지는 데이터의 index를 반환
    df.loc[max_idx] # 최소값의 인덱스로 df 데이터 프레임의 bill_length_mm 열의 최소값 출력
    

6) 그룹 연산

  1. 특정 열을 기준으로 데이터 프레임을 그룹화하기

    grouped_df = df.groupby('species').mean(numeric_only=True) # df 데이터 프레임의 species 열의 값을 기준으로 그룹화한 후 평균 계산
    
  2. 그룹 연산 활용 예제

    # 각 섬(island)별로 flipper_length_mm의 합계를 구하고, 그 중 합계가 가장 큰 섬을 찾아보기
    # groupby() / idmax() 활용
    
    grouped_df = df.groupby('island')['flipper_length_mm'].sum()
    max_flipper_island = grouped_df['flipper_length_mm'].idxmax()
    grouped_df.loc[max_flipper_island]
    

기출 문제 풀이

Google Colab

[2] 작업형 2유형

제 2유형 소개

제 2유형 시험 환경 및 제출 관련 내용

</aside>