[IT] AICE 예제 문제 풀이 ( 샘플 - Associate )
본문 바로가기
IT

[IT] AICE 예제 문제 풀이 ( 샘플 - Associate )

by DHan- 2023. 12. 22.
728x90

https://aice.study/certi/practice

 

예제



1. scikit-learn은 파이썬에서 머신러닝을 쉽게 사용할 수 있게 해주는 오픈 소스 라이브러리이며, 데이터 마이닝과 데이터 분석에 널리 사용됨.. scikit-learn을 사용하면 다양한 머신러닝 모델을 만들고 훈련시키며, 데이터를 전처리하고 평가하는 등의 작업을 간편하게 할 수 있다. 해당 라이브러리를 별칭(alias) sk로 임포트하는 코드는?

import sklearn as sk

2. pandas는 데이터분석을 위해 사용하는 라이브러리이며, 별칭(alias) pd로 임포트하는 코드는?

import pandas as pd

3. matplotlib 라이브러리의 pyplot 모듈은 그래프를 그릴 때 사용합니다. 별칭(alias)  plt로 임포트하는 코드는?

import matplotlib.pyplot as plt

4. matplotlib 라이브러리의 font_manager 모듈은 폰트 관리에 사용합니다. 별칭(alias)  fm로 임포트하는 코드는?

import matplotlib.font_manager as fm

5. 통계 데이터 시각화(통계차트, 색상테마 등)를 위한 별칭(alias)  sea로 임포트하는 코드는?

import seaborn as sea

6. Matplotlib에서 그래프를 그릴 때 사용되는 기본 폰트를 'NanumGothicCoding'으로 설정하는 코드는?

plt.rc('font',family='NanumGothicCoding')

7. Pandas 함수로 데이터 파일을 읽어 데이터프레임 변수명 df에 할당하는 코드는 ? 파일명 : A0007IT.json

df = pd.read_json('A0007IT.json')

8. Seaborn 라이브러리의 countplot 함수를 통해 Address1 열의 각 값의 빈도를 시각화하는 방법은?

sea.countplot(data=df, x='Address1')

9. matplotlib 라이브러리의 show 함수를 통해 그래프를 화면에 표시하는 코드는 ?

plt.show()

10. 데이터 프레임 'df'에서 'Address1' 열의 값이 '-'인 행을 모두 제거하는 코드는?

df = df[df['Address1'] != '-']

11. 데이터 프레임 'df'에서 Time_Driving' 열과 'Speed_Per_Hour' 열 간의 관계를 시각화하는 joint plot을 생성하는 코드는?(  Seaborn의 jointplot 함수를 사용하여 'Time_Driving'을 x축으로, 'Speed_Per_Hour'를 y축으로 하는 조인트 플롯을 생성 )

sns.jointplot(data=df, x='Time_Driving',y='Speed_Per_Hour')
plt.show()

12. [전처리] jointplot 그래프에서 발견한 이상치 1개(시속300) 를 삭제 및 df_temp에 저장하는 코드는 ?

df_temp = df[df['Speed_Per_Hour'] < 300]

13. [결측치 처리] 결측치 확인 코드 작성 및 결측치 있는 row 삭제 및 전처리 반영 후 df_na 변수에 저장 

df_temp.isna().sum()
df_na = df_temp.dropna(axis=0)


isna()는 결측값 여부를 나타내는 불리언 데이터프레임을 반환, sum()은 각 열별로 true(결측값) 개수 계산 처리, df_temp 데이터 프레임에서 결측값이 있는 행을 제거한 후 df_na에 할당. dropna()함수는 결측값이 있는 행&열 삭제 axis=0는 행을 의미함. df_temp.isna().sum()는 각 열별로 결측값의 개수를 나타내고, df_na에는 결측값이 있는 행이 삭제된 데이터프레임이 저장. 이렇게 결측값을 다루는 것은 데이터 전처리 과정 중 하나로, 모델 학습이나 시각화를 위해 정확하고 완전한 데이터를 유지하기 위해 사용됨.


14. 불필요 변수(Time_Departure, Time_Arrival 삭제) 및 전처리 결과를 df_del에 저장

df_del = df_na.drop(['Time_Departure','Time_Arrival'], axis=1)


df_na 데이터프레임에서 'Time_Departure' 및 'Time_Arrival' 열을 삭제(drop)한 후, 결과를 새로운 데이터프레임 df_del에 할당. drop() 함수의 axis=1은 열을 의미, 필요 없는 열을 삭제하면 데이터프레임을 더 간결하게 만들고, 머신 러닝 모델을 학습시킬 때 불필요한 정보가 제거됨.


15. 원-핫 인코딩 대상은 object 타입 전체 변환하여 변수 df_preset에 저장 ( One-hot encoding은 범주형 변수를 1,0 으로 변환하게 함. )

cols = df_del.select_dtypes('object').columns
df_preset = pd.get_dummies(data=df_del, columns=cols)

df_del에서 문자열 형태의 열(범주형 변수)을 선택하고, 이를 get_dummies 함수를 사용하여 더미 변수로 변환. df_preset에 할당.

df_del.select_dtypes('object').columns: 이 코드는 df_del 데이터프레임에서 데이터 타입이 'object'인 열(문자열 형태의 열, 범주형 변수)을 선택, 이를 통해 범주형 변수들을 추출. pd.get_dummies(data=df_del, columns=cols): get_dummies 함수를 사용하여 데이터프레임의 범주형 변수를 더미 변수로 변환. data 매개변수에는 변환할 데이터프레임을, columns 매개변수에는 더미 변수로 변환할 열(범주형 변수)의 리스트를 전달.

pandas의 get_dummies 함수는 데이터프레임의 범주형 변수를 더미(dummy) 변수로 변환하는 데 사용됨. 예제 ) 

import pandas as pd

# 데이터프레임 생성
data = {'Gender': ['Male', 'Female', 'Male', 'Female']}
df = pd.DataFrame(data)

# get_dummies를 사용하여 더미 변수 생성
df_dummies = pd.get_dummies(df['Gender'])

# 원래 데이터프레임과 더미 변수를 합침
df = pd.concat([df, df_dummies], axis=1)

# 결과 확인
print(df)

예제 결과


16. Time_Driving[실주행시간] 칼럼을 label값 y, 나머지 칼럼을 feature 값 x로 할당한 후에 훈련데이터셋 검증데이터 셋으로 분리

대상 데이터프레임: df_preset
훈련 데이터셋 label: y_train, 훈련 데이터셋 Feature: X_train 
검증 데이터셋 label: y_valid, 검증 데이터셋 Feature: X_valid
훈련 데이터셋과 검증데이터셋 비율은 80:20 / random_state: 42 
Scikit-learn의 train_test_split 함수를 활용하세요.

from sklearn.model_selection import train_test_split
x = df_preset.drop('Time_Driving', axis=1)
y = df_preset['Time_Driving']
X_train, X_valid, y_train, y_valid = train_test_split(x,y, test_size=0.2, random_state=42)

---

from sklearn.model_selection import train_test_split

> Scikit-learn의 train_test_split 함수는 훈련세트와 테스트 세트로 나누는데 사용됨. 사용되는 목적은 해당 모델이 처음 보는 데이터에 대해 얼마나 일반화되었는지를 평가하기 위함이며, 검증 세트는 훈련 중에 모델의 성능을 객관적으로 평가하는데 사용됨.


17. Time_Driving[실주행시간]을 예측하는 머신러닝 모델 ( Decision tree ) 생성

의사결정나무(Decision tree)는 여러 가지 규칙을 순차적으로 적용하면서 독립 변수 공간을 분할하는 모형으로 분류(classification) 회귀분석(regression)에 사용될 수 있음. 

728x90

댓글