8회 빅분기 필기 시험 대비하여 3가지 유형에 대해 파악하였습니다. 그 과정중에 필기시험 면제기간 안내도 받았습니다. 이제는 다양한 사례를 대비해 python 코드 연습이 필요합니다. 이 번 포스팅은 MS Copilot 에게 3가지 유형에 대한 코드를 문의한 결과입니다.
제1유형 : 전처리
질문
1. 데이터 타입(object, int, float, bool 등)
2. 기초통계량(평균,중앙값,사분위수,IQR, 표준편차 등)
3. 데이터 인덱싱, 필터링, 정렬, 변경 등
4. 중복값, 결측치, 이상치 처리(제거 o 대체)
5. 데이터 Scaling(데이터 표준화(z), 데이터정규화(min-max))
6. 데이터 합치기
7. 날짜/시간 데이터, index 다루기.
등등 관련 사례를 빅분기 실기 제1유형에 맞춰 mtcars 데이터로 20가지 정도 python 예시를 한개의 코드로 알려줘..
답변
import pandas as pd
import numpy as np
# mtcars 데이터 불러오기 (예시 데이터)
mtcars = pd.read_csv('mtcars.csv')
# 1. 데이터 타입 확인
data_types = mtcars.dtypes
# 2. 기초통계량 계산
summary_stats = mtcars.describe()
# 3. 데이터 인덱싱, 필터링, 정렬, 변경
selected_columns = mtcars[['mpg', 'hp']]
filtered_rows = mtcars[mtcars['mpg'] > 20]
mtcars.rename(columns={'mpg': 'mileage'}, inplace=True)
mtcars = mtcars[['model', 'cyl', 'mileage']]
# 4. 중복값, 결측치, 이상치 처리
mtcars.drop_duplicates(inplace=True)
missing_values = mtcars.isnull().sum()
mtcars = mtcars[mtcars['mpg'] >= 0]
# 5. 데이터 Scaling
from sklearn.preprocessing import StandardScaler, MinMaxScaler
scaler = StandardScaler()
scaled_data = scaler.fit_transform(mtcars[['mpg', 'hp']])
minmax_scaler = MinMaxScaler()
normalized_data = minmax_scaler.fit_transform(mtcars[['mpg', 'hp']])
# 6. 데이터 합치기
# 다른 데이터프레임 df와 합치는 예시
merged_df = pd.concat([mtcars, df], axis=1)
# 7. 날짜/시간 데이터, index 다루기
mtcars['date'] = pd.to_datetime(mtcars['date_column'])
mtcars.set_index('model', inplace=True)
제2유형 : 머신러닝
질문
빅분기 실기 제2유형에 맞춰 customer 데이터세트로 RandomForestClassifier 를 포함한 5개 다른 알고리즘으로 학습하고 예측하는 코드와 함께 help 명령어 사용법을 python 코드로 작성
답변
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC
from sklearn.neighbors import KNeighborsClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score, classification_report
# 데이터 불러오기
customer_data = pd.read_csv('customer_dataset.csv')
# 특성과 레이블 분리
X = customer_data.drop('target', axis=1)
y = customer_data['target']
# 데이터 분할
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# RandomForestClassifier 모델 생성 및 훈련
rf_classifier = RandomForestClassifier()
rf_classifier.fit(X_train, y_train)
rf_predictions = rf_classifier.predict(X_test)
rf_accuracy = accuracy_score(y_test, rf_predictions)
# 다른 알고리즘들도 생성 및 훈련
log_reg = LogisticRegression()
log_reg.fit(X_train, y_train)
svc = SVC()
svc.fit(X_train, y_train)
knn = KNeighborsClassifier()
knn.fit(X_train, y_train)
tree = DecisionTreeClassifier()
tree.fit(X_train, y_train)
# 각 알고리즘의 정확도 및 classification report 출력
print(f"RandomForestClassifier Accuracy: {rf_accuracy:.4f}")
print(f"Logistic Regression Accuracy: {accuracy_score(y_test, log_reg.predict(X_test)):.4f}")
print(f"SVM Accuracy: {accuracy_score(y_test, svc.predict(X_test)):.4f}")
print(f"K-Nearest Neighbors Accuracy: {accuracy_score(y_test, knn.predict(X_test)):.4f}")
print(f"Decision Tree Accuracy: {accuracy_score(y_test, tree.predict(X_test)):.4f}")
# RandomForestClassifier의 classification report
print("\nRandomForestClassifier Classification Report:")
print(classification_report(y_test, rf_predictions))
# help 명령어 사용법
# 예를 들어, RandomForestClassifier에 대한 도움말을 보려면:
help(RandomForestClassifier)
# 또는 특정 메소드에 대한 도움말을 보려면:
help(RandomForestClassifier.fit)
제3유형 : 통계분석
질문
빅분기 실기 제3유형에 맞춰 titanic 데이터세트로 필요한 통계분석 사례를 ttest, anderson, shapiro, wilcoxon, ranksum, revene. bartlett, anova, chi2_contingency 사용하여 10가지 정도 예시를 하나의 python 코드로 작성해주고 help 사용법도 알려줘
답변
import pandas as pd
from scipy.stats import ttest_ind, anderson, shapiro, wilcoxon, ranksums, levene, f_oneway, chi2_contingency
# Titanic 데이터 불러오기 (예시 데이터)
titanic = pd.read_csv('titanic.csv')
# 1. t-검정 (t-test)
group1 = titanic[titanic['Pclass'] == 1]['Fare']
group2 = titanic[titanic['Pclass'] == 3]['Fare']
t_statistic, p_value = ttest_ind(group1, group2)
# 2. Anderson-Darling 검정 (anderson)
result = anderson(titanic['Age'])
# 3. Shapiro-Wilk 검정 (shapiro)
_, p_value = shapiro(titanic['Fare'])
# 4. Wilcoxon 부호 순위 검정 (wilcoxon)
_, p_value = wilcoxon(titanic['Age'], titanic['Fare'])
# 5. Mann-Whitney U 검정 (ranksum)
male_fare = titanic[titanic['Sex'] == 'male']['Fare']
female_fare = titanic[titanic['Sex'] == 'female']['Fare']
_, p_value = ranksums(male_fare, female_fare)
# 6. Levene 검정 (levene)
_, p_value = levene(titanic[titanic['Pclass'] == 1]['Age'],
titanic[titanic['Pclass'] == 2]['Age'],
titanic[titanic['Pclass'] == 3]['Age'])
# 7. ANOVA 분산 분석 (anova)
group1 = titanic[titanic['Pclass'] == 1]['Fare']
group2 = titanic[titanic['Pclass'] == 2]['Fare']
group3 = titanic[titanic['Pclass'] == 3]['Fare']
_, p_value = f_oneway(group1, group2, group3)
# 8. 카이제곱 검정 (chi2_contingency)
contingency_table = pd.crosstab(titanic['Sex'], titanic['Survived'])
_, p_value, _, _ = chi2_contingency(contingency_table)
# help 명령어 사용법
# 예를 들어, ttest_ind에 대한 도움말을 보려면:
help(ttest_ind)
# 또는 특정 메소드에 대한 도움말을 보려면:
help(ttest_ind)
'IT > 빅데이터분석기사(빅분기)' 카테고리의 다른 글
8회 빅분기 필기시험 면제기간 (2년) 및 실기시험 유효기간 (빅데이터분석 기사) (0) | 2024.04.14 |
---|---|
8회 빅분기 실기 시험 준비, 작업 제3유형, 구글 Gemini 및 MS Copliot (Chat GPT) 분석 (빅데이터분석 기사) (0) | 2024.04.13 |
구글 Gemini 및 MS Copliot (Chat GPT) 활용 8회 빅데이터분석 기사(빅분기) 실기 도전 작업 제2유형 (0) | 2024.04.10 |
구글 Gemini 및 MS Copliot (Chat GPT) 활용 빅데이터분석 기사(빅분기) 실기 도전 작업 제1유형 (0) | 2024.04.10 |
23년 빅데이터분석기사(빅분기) 일정 및 한국데이터검증원(데이터자격시험) 홈페이지 개편 (0) | 2023.01.25 |
댓글