전체 글 39

[작업형2] 신용카드 서비스를 떠나는 고객 확률 구하기(분류)

// 퇴근후딴짓 님의 강의를 참고하였습니다. // Dataset : 문제) 신용카드 서비스를 떠나는 고객을 찾아라. 나이, 급여, 결혼 상태, 신용 카드 한도, 신용 카드 카테고리 등의 컬럼이 있음. 평가: ROC-AUC, 정확도(Accuracy), F1, 정밀도(Precision), 재현율(Recall)을 구하시오. target : Attrition_Flag (1:이탈, 0:유지) csv파일 생성 : 수험번호.csv (예시 아래 참조) 1. 데이터 불러오기 import pandas as pd train = pd.read_csv("train.csv") test = pd.read_csv("test.csv") → train과 test 2개의 파일로 나누어져있다. 2. EDA train.shape, test...

[작업형1] 평균 / 그룹합 / datetime 변환 구하기

// 퇴근후딴짓 님의 강의를 참고하였습니다. // Dataset : 문제7) index '2001' 데이터(행)의 평균보다 큰 값의 수와 index '2003' 데이터(행)의 평균보다 작은 값의 수를 더하시오. # 데이터 생성 import pandas as pd import random df = pd.DataFrame() for i in range(0, 5): list_box = [] for k in range(0, 200): ran_num = random.randint(1,200) list_box.append(ran_num) df[i+2000] = list_box df = df.T df.to_csv("data.csv", index=True) → 7번 문제에서 사용할 data.csv 파일을 만드는 코드이..

[작업형1] 결측치 대체 / 사분위수 / 표준편차 구하기

// 퇴근후딴짓 님의 강의를 참고하였습니다. // Dataset : 문제4) 주어진 데이터에서 자료형(type)이 object인 컬럼은 삭제하고, 결측치는 0으로 대체한다. 행 단위로 합한 다음 그 값이 3000보다 큰 값의 데이터 수를 구하시오 ('age', 'f1', 'f2', 'f5', 'views'의 각 행별 합) import pandas as pd df = pd.read_csv("members.csv") cols = df.select_dtypes(include='object').columns cols df = df.drop(cols, axis=1) df.head() → select_dtypes(include)를 통해 object인 컬럼명을 뽑아온 후 drop을 통해 제거가 가능하다. cols =..

[작업형1] 결측치 대체 / 사분위수 구하기

// 퇴근후딴짓 님의 강의를 참고하였습니다. // Dataset : 문제1) f1컬럼의 결측치는 중앙 값으로 대체하고, 나머지 결측치가 있는 데이터(행)을 모두 제거하고, 앞에서부터 70% 데이터 중 views 컬럼의 3사분위 수에서 1사분위 수를 뺀 값을 구하시오. (단, 데이터 70% 지점은 정수형(int) 변환) import pandas as pd df = pd.read_csv("members.csv") print(df.isnull().sum()) df['f1'] = df['f1'].fillna(df['f1'].median()) print(df.isnull().sum()) 실행 결과 : id 0 age 0 city 0 f1 31 f2 0 f3 28 f4 0 f5 0 subscribed 0 views..

[작업형2] 보험가입 확률 구하기(분류)

// 퇴근후딴짓 님의 강의를 참고하였습니다. // Dataset : 문제) 보험가입 확률을 다음과 같은 형식의 CSV 파일로 생성하시오. 1. 데이터 불러오기 import pandas as pd train = pd.read_csv("train.csv") test = pd.read_csv("test.csv") 2. EDA # 크기 확인 train.shape, test.shape 실행 결과 : ((1490, 10), (497, 9)) # 샘플 확인 train.head() → TravelInsurance 컬럼이 Target으로 사용될 컬럼이다. # 타입 확인 train.info() 실행 결과 : RangeIndex: 1490 entries, 0 to 1489 Data columns (total 10 colum..

[작업형1] 결측치 / 사분위수 / 데이터 수 구하기

// 퇴근후딴짓 님의 강의를 참고하였습니다. // Dataset : 1. 데이터 불러오기 import pandas as pd df = pd.read_csv("members.csv") df → 100개의 행과 10개의 열로 이루어져있는 데이터셋이다. 문제1) 결측치 데이터(행)을 제거하고, 앞에서부터 70% 데이터만 활용해, 'f1' 컬럼 1사분위 값을 구하시오. print(df.isnull().sum()) print(df.shape) 실행 결과 : id 0 age 0 city 0 f1 31 f2 0 f3 28 f4 0 f5 0 subscribed 0 views 4 dtype: int64 (100, 10) → df의 결측치 확인 시 f1컬럼에 31개, f1컬럼에 28개, view 컬럼에 4개가 있는 것을 ..

[작업형2] 제품 배송 시간에 맞춰 배송되었는지 예측하기(분류)

// 퇴근후딴짓 님의 강의를 참고하였습니다. // Dataset : 문제) 제품 배송 시간에 맞춰 배송되었는지 예측모델 만들기(정시 도착하지 않을 확률), 다음과 같은 형식의 CSV 파일로 생성하시오. - ID : 고객 ID - Reached.on.Time_Y.N : 정시 도착 여부 (0: 정시 도착, 1: 정시 도착하지 않음) 1. 데이터 불러오기 # 시험환경 세팅 3개 파일 생성 (코드 변경 X) import pandas as pd import numpy as np from sklearn.model_selection import train_test_split def exam_data_load(df, target, id_name="", null_name=""): if id_name == "": df =..

[작업형1] 대체 및 평균값 / 표준편차 / 이상치 구하기

// 퇴근후딴짓 님의 강의를 참고하였습니다. // Dataset : 1. 데이터 불러오기 import pandas as pd df = pd.read_csv("members.csv") df → 100개의 행과 10개의 열로 이루어져있는 데이터셋이다. 문제1) 'views' 컬럼 상위 10개 데이터를 상위 10번째 값으로 대체한 후 'age'컬럼에서 80이상인 데이터의 'views'컬럼 평균값을 구하시오. # views 컬럼 내림차순 정렬 후 상위 10개 불러오기 df = df.sort_values('views', ascending=False) df.head(10) → 상위 10개 데이터를 구하기 위해 내림차순(ascending=False)으로 정렬 후 10개의 데이터를 불러온다. # 상위 10번째 값 구하..

[작업형2] 고객의 성별이 남자일 확률 구하기(분류)

// 퇴근후딴짓 님의 강의를 참고하였습니다. // Dataset : 문제) 백화점 고객의 1년간 구매 데이터에서 고객의 성별 예측값(남자일 확률)을 다음과 같은 형식의 CSV 파일로 생성하시오. - cust_id : 고객 ID - gender : 성별 (0: 여자, 1: 남자) 1. 데이터 불러오기 import pandas as pd X_train = pd.read_csv("X_train.csv", encoding="euc-kr") y_train = pd.read_csv("y_train.csv") X_test = pd.read_csv("X_test.csv", encoding="euc-kr") → 시험환경에서는 encoding="euc-kr"가 없어도 된다. 2. EDA # 데이터 크기 X_train.sh..

[작업형1] 레코드(row) 수 구하기

// 퇴근후딴짓 님의 강의를 참고하였습니다. // Dataset : 문제) 자동차 데이터셋에서 qsec컬럼을 Min-Max Scale로 변환 후 0.5보다 큰 값을 가지는 레코드(row) 수를 구하시오. 1. 데이터 불러오기 import pandas as pd def load_data(): return pd.read_csv("mtcars.csv") data = load_data() data.head() 2. 스케일링 / MinMaxScaler, minmax_scale, 사용자 정의 함수 3가지 활용 # MinMaxScaler from sklearn.preprocessing import MinMaxScaler data = load_data() scaler = MinMaxScaler() print('MinM..