IT/빅데이터분석기사(빅분기)

8회 빅분기 필기시험 대비 위한 MS Copilot 3가지 유형 연습 python 코드 문의결과 (빅데이터분석기사)

자바라머신러닝 2024. 4. 15. 21:47

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)

 

 

Copilot 으로 생성한 빅데이터분석기사 이미지
Copilot 으로 생성한 빅데이터분석기사 이미지