빅데이터분석기사 26

[작업형3] 가설검정 과정

// 퇴근후딴짓 님의 강의를 참고하였습니다. // 1. 모집단과 표본 - 모집단 : 집단 전체 - 표본 : 모집단을 대표하는 집합 2. 귀무가설과 대립가설 - 가설검정 : 모집단에 대한 가설이 적합한지 추출한 표본데이터로부터 판단하는 통계적 추론 (ex. 대한민국 남성 평균 키가 175cm가 맞는지 전부 조사하기 어렵기 때문에 표본데이터로 판단) - 귀무가설(H0) : 기존에 알려진 가설 (평균 키가 175cm 이다.) - 대립가설(H1) : 새로 밝히려는 가설 (평균 키가 175cm가 아니다.) - 귀무가설 채택 -> 귀무가설을 기각하지 못한다. - 대립가설 채택 -> 귀무가설을 기각한다. (통계적으로 유의하다.) 3. 가설검정의 오류 - 1종 오류 : 귀무가설(H0)이 참인데도 기각하는 경우 - 2종..

[작업형3] 표본평균 / 검정통계량 / p-value / 채택.기각 구하기

// 퇴근후딴짓 님의 강의를 참고하였습니다. // 시험환경 : https://dataq.goorm.io/exam/116674/체험하기/quiz/3 문제) 주어진 데이터(data/blood_pressure.csv)에는고혈압 환자 120명의 치료 전후의 혈압이 저장되어 있다. 해당 치료가 효과가 있는지 (즉, 치료 후의 혈압이 감소했는지) 쌍체표본 t-검정(paired t-test)를 통해 답하고자 한다. 가설은 아래와 같다. - bp_before : 치료 전 혈압 - bp_after : 치료 후 혈압 - H0 : 귀무가설 (치료 효과가 없을 것이다.) - H1 : 대립가설 (치료 효과가 있을 것이다.) 문제1) μd(치료 후 혈압 - 치료 전 혈압)의 표본평균을 입력하시오. (반올림하여 소수 둘째자리까지 ..

[작업형2] 유방암 예측 모델 만들기(분류)

// 퇴근후딴짓 님의 강의를 참고하였습니다. // 시험환경 : https://bit.ly/3H64wpG 문제) 분류 모델을 만든 뒤 다음과 같은 형식으로 CSV파일로 생성하시오. (제출한 모델의 성능은 F1평가지표에 따라 채점) 1. 시험환경 세팅 # 시험환경 세팅 import pandas as pd from sklearn import datasets dataset = datasets.load_breast_cancer() df = pd.DataFrame(dataset['data'], columns=dataset['feature_names']) df['target'] = dataset['target'] df.to_csv("data2.csv", index=False) from sklearn.model_sel..

[작업형1] 평균 / 행(row)별 합 / 고유값 수 구하기

// 퇴근후딴짓 님의 강의를 참고하였습니다. // 시험환경 : https://bit.ly/3H64wpG 문제1) 앞에서 부터 50%의 데이터와 'target'컬럼이 0 값을 가진 데이터만 활용해 'proline'컬럼의 평균을 구하시오. (소수점 절사(버림), 정수형 출력) # 시험환경 세팅 import pandas as pd from sklearn import datasets dataset = datasets.load_wine() df = pd.DataFrame(dataset['data'], columns=dataset['feature_names']) df['target'] = dataset['target'] df.to_csv("data1-1.csv", index=False) # 데이터 파일 읽기 예제 ..

[작업형2] 심장마비 확률 높은 사람 구하기(분류 / 튜닝)

// 퇴근후딴짓 님의 강의를 참고하였습니다. // Dataset : 문제) 심장마비 확률이 높은 사람을 다음과 같은 형식의 CSV 파일로 생성하시오. 성별, 나이, 혈압, 콜레스테롤, 공복혈당, 최대 심박수 등의 컬럼이 있음. 평가: ROC-AUC, 정확도(Accuracy), F1 을 구하시오. target : output (1:심장마비 확률 높음, 0:심장마비 확률 낮음) csv파일 생성 : 수험번호.csv (예시 아래 참조) 1. 데이터 불러오기 import pandas as pd train = pd.read_csv("train.csv") test = pd.read_csv("test.csv") print(train.shape, test.shape) 실행 결과 : (242, 15) (61, 14) → ..

[작업형2] 에어비앤비 가격 예측하기(회귀)

// 퇴근후딴짓 님의 강의를 참고하였습니다. // Dataset : 문제) 에어비엔비 가격을 다음과 같은 형식의 CSV 파일로 생성하시오. 평가: R-Squared, MAE, MSE, RMSE, RMSLE, MAPE target : price(가격) 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.shape 실행 결과 : (39116, 16) (9779, 15) train.head(3) → train 데이터는 16개의 열로 이루어져..

[작업형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..