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

구글 Gemini 및 MS Copliot (Chat GPT) 활용 빅데이터분석 기사(빅분기) 실기 도전 작업 제1유형

자바라머신러닝 2024. 4. 10. 18:07

2년전 필기 합격후 실기 시험을 응시하지 않은 빅데이터 분석 기사(빅분기)에 도전합니다. 그 사이 Chat GPT 가 출시되면서 학습방법의 많은 변화가 생겼습니다. 8회 빅데이터분석기사 실기에 도전하면서 도서를 구매했지만 Coploit 을 할용하여 학습을 병행하고자 합니다. 이번 포스팅은 실기시험 체험 제1유형 부분입니다.

 

  • 결론
    • 결과는 구글 Gemini 및 MS Copliot 모두 동일한 값을 출력하는 코드 생성
    • 2개 생성형 AI 에서 fit() 과 transform() 을 함축한 fit_transform() 사용
    • 2개 생성형 AI 결과와 기존 알고 있는 코드로 요약 내용 (아래-시험암기용)
from sklearn.preprocessing import MinMaxScaler
import pandas as pd
df = pd.read_csv("data/mtcars.csv")                # 데이터 획득
data = df[['qsec']]                                # 데이터 지정
scaler = MinMaxScaler()                            # 스케일러 생성
print( ( scaler.fit_transform(data) > 0.5).sum() ) # 0~1 이하 변환후 개수 sum

 

2개 생성형 AI 결과와 기존 알고 있는 코드로 요약 결과
2개 생성형 AI 결과와 기존 알고 있는 코드로 요약 결과

  • 문제
더보기

제공된 데이터 (data/mtcars.csv)의 qsec 컬럼을 최소-최대 척도 (MinMaxScaler)로 변환한 후
0.5 보다 큰 값을 가지는 레코드 수를 [제출 형식]에 맞춰 
답안 작성 페이지에 입력하시오.

[제출 형식]
1) 정수 (integer) 로 입력
    (단, 소수점을 포함한 경우 소수점 첫째 자리에서 반올림하여 계산)

2) 정수 답안만 입력

위 상황을 구현한 Python 코드를 작성해줘

 

  • 구글 Gemini 질의 결과 (20줄)

구글 Gemini 질의 결과
구글 Gemini 질의 결과

 

import pandas as pd
from sklearn.preprocessing import MinMaxScaler

# 데이터 불러오기
df = pd.read_csv("data/mtcars.csv")

# MinMaxScaler 객체 생성
scaler = MinMaxScaler()

# qsec 컬럼 변환
df['qsec'] = scaler.fit_transform(df[['qsec']])

# 0.5보다 큰 값을 가지는 레코드 수 계산
count = (df['qsec'] > 0.5).sum()

# 정수 값으로 변환
answer = int(round(count))

# 출력
print(f"0.5보다 큰 값을 가지는 레코드 수: {answer}")

 

  • 구글 Gemini 답변 빅데이터분석기사 실기 체험 결과

구글 Gemini 답변 빅데이터분석기사 실기 체험 결과
구글 Gemini 답변 빅데이터분석기사 실기 체험 결과

 

 

  • MS Copliot 질의 결과 (20줄)

MS Copliot 질의 결과
MS Copliot 질의 결과

 

 

import pandas as pd
from sklearn.preprocessing import MinMaxScaler

# 데이터 불러오기
data = pd.read_csv("data/mtcars.csv")

# qsec 컬럼 추출
qsec_column = data["qsec"].values.reshape(-1, 1)

# MinMaxScaler 초기화
scaler = MinMaxScaler()

# qsec 컬럼을 최소-최대 척도로 변환
qsec_scaled = scaler.fit_transform(qsec_column)

# 0.5보다 큰 값을 가지는 레코드 수 계산
count_greater_than_0_5 = sum(qsec_scaled > 0.5)

# 결과 출력
print(count_greater_than_0_5[0])

 

  • MS Copliot 답변 빅데이터분석기사 실기 체험 결과

MS Copliot 답변 빅데이터분석기사 실기 체험 결과
MS Copliot 답변 빅데이터분석기사 실기 체험 결과

 

 

  • 비교
    • Gmini 코드는 독립변수 (qsec) 추출 과정이 단순하나, MS Copilot 은 reshape 를 구지 사용함
    • 둘다 fit_transform 로 간단하게 학습 및 변환 동시 진행

 

  • 원래 알던 코드
#help("sklearn.preprocessing.MinMaxScaler") 

# help 추천 Sample 응용

from sklearn.preprocessing import MinMaxScaler
data = df[['qsec']]
scaler = MinMaxScaler()
scaler.fit(data)
df['qsec_transformed'] = scaler.transform(data)
print(len(df[:][df['qsec_transformed']>0.5]))