728x90
반응형
# 작업형 1유형
# 가격 컬럼 중 종량제 봉투가 존재하면 값이 0
# 1. 용도 : 음식물쓰레기, 사용대상 : 가정용, 2L 가격의 평균을 소수점 버린 후 정수로 출력
cond1 = df['용도'] == '음식물쓰레기'
cond2 = df['사용대상'] == '가정용'
cond3 = df['2L가격'] != 0
df = df[cond1&cond2&cond3]
# print(df.head())
# print(df['2L가격'].mean())
print(round(df['2L가격'].mean()))
# 정답 : 119
# 작업형 1유형
# BMI지수 = 몸무게(kg) / 키(m)의 제곱
# 2. 비만도가 정상에 속하는 인원수와 과체중에 속하는 인원수의 차이를 정수로 출력
df['BMI'] = (df['Weight']) / ((df['Height']*0.01)**2)
# print(df.head(10))
cond1 = (df['BMI'] >= 18.5) & (df['BMI'] < 23)
cond2 = (df['BMI'] >= 23) & (df['BMI'] < 25)
# print(len(df[cond1]))
# print(len(df[cond2]))
print(len(df[cond1])-len(df[cond2]))
# 정답 : 28
# 작업형 1유형
# 순 전입학생수 : 총 전입학생 수 - 총 전출학생 수
# 3. 순 전입학생이 가장 많은 학교의 전체 학생 수를 구하시오
df = df.groupby('학교').sum()
df['순 전입학생 수'] = df['총 전입학생'] - df['총 전출학생']
# df.head()
df = df.sort_values('순 전입학생 수', ascending = False)
df.head(10)
print(df['전체 학생 수'].iloc[0])
# 정답 : 566
# 작업형 2유형
# 중고차의 판매 가격을 예측
# EDA
# print(train.shape, test.shape)
# print(train.head()) 타겟 값 포함
# print(test.head())
# print(train.info()) # object형 있음
# print(train.describe())
# 결측치 확인
# print(train.isnull().sum()) # 결측치 X
# print(test.isnull().sum()) # 결측치 X
# 수치형만 사용
train = train.select_dtypes(exclude = 'object')
test = test.select_dtypes(exclude = 'object')
# print(train)
# print(test)
# 타겟 값 분리
target = train.pop('price')
# print(train.shape, test.shape, target.shape)
# 데이터 분리
from sklearn.model_selection import train_test_split
X_tr, X_val, y_tr, y_val = train_test_split(train, target, test_size=0.2, random_state=2023)
# print(X_tr.shape, X_val.shape, y_tr.shape, y_val.shape)
# 모델 학습 및 평가
from sklearn.ensemble import RandomForestRegressor
model = RandomForestRegressor(random_state=2023)
model.fit(X_tr, y_tr)
# pred = model.predict(X_val)
# 분류 모델 평가
# sklearn.metrics import roc_auc_score
# roc_auc_score(y_val, pred)
# 회귀 모델 평가
# sklearn.metrics import mean_square_error, mean_absolute_error, r2_score
# mean_squared_error(y_val, pred)
# mean_absolute_error(y_val, pred)
# r2_score(y_val, pred)
# test 예측하기
pred = model.predict(test)
# csv 제출
result = pd.DataFrame({
'pred':pred
})
# 결과 csv 파일 제출하기
result.to_csv("result.csv", index=False)
# 제출 잘 됐는지 확인
pd.read_csv('result.csv')
728x90
반응형
'자격증 공부 > 빅데이터분석기사' 카테고리의 다른 글
빅데이터 분석기사 실기 3회 기출 (0) | 2023.06.23 |
---|---|
빅데이터 분석기사 실기 4회 기출 (0) | 2023.06.23 |
빅데이터 분석기사 실기 통계함수 (0) | 2023.06.23 |
빅데이터 분석기사 실기 모의고사 - 작업형 1유형(15) (0) | 2023.06.22 |
빅데이터 분석기사 실기 모의고사 - 작업형 1유형(14) (0) | 2023.06.22 |
댓글