셀프스터디/빅데이터 분석기사
[11.27 토] 빅데이터 분석기사 실기 - Machine Learning (1~4강)
티로즈
2021. 11. 27. 16:04
1. 머신러닝(Machine Learning) 과정
![]() |
2. Machine Learning - 전처리
1-1.문제지와 실제 dtype차이 확인문제지 요구사항에 제시된 column의 dtype이 file에서 읽어온 데이터와 동일한지 확인하여 문제지에 제시된 것에 맞도록 변환
|
import pandas as pd
data = {'point': ['1', '*2', '3', '*4', '1'],
'date': ['2021-01-02', '2021-01-03', '2021-01-04', '2021-01-05', '2021-01-06'],
'gender': ['F', 'M', 'M', 'F', 'M']}
df = pd.DataFrame(data)
df.info()
|
3. 모든 column의 dtype 확인
Machine Learning을 위한 column의 dtype은 int 또는 float 이어야 한다
|
#위 코드에 이어서 계속
print(df['datetime'].dt.day.nunique()) #var, nunique의 값을 확인해서 feature로 사용할 수 없는 값 확인
df['day'] = df['datetime'].dt.day
df['gender_LE'] = df['gender'].replace({'F':0, 'M':1})
df2 = df[['point_num', 'day', 'gender_LE']] #사용할 feature만 새로 저장
df2.info()
|
4. train, test 데이터
train, test 데이터는 세 개의 파일로 나뉘어 제공됨
|
5. 결측치
|
6. 평가 결과 제출
|
7. 도움말 사용법
|
8. 자녀의 키 예측 : 부모의 키를 사용하여 자녀의 키 예측하기
# [0] train, test 파일 가져오기
X_train = pd.read_csv('X_train.csv')
Y1_train = pd.read_csv('Y1_train.csv')
X_test = pd.read_csv('X_test.csv')
|
|
# [1] 아빠, 엄마, 아들 키의 상관관계 #입력데이터끼리는 상관관계가 낮은 것이, 출력데이터와 입력데이터는 높은 것이 좋음
df= X_train.copy()
df['아들'] = Y1_train['아들']
df.corr()
|
# [2] 데이터 지정하기
# 아빠, 엄마의 키를 사용해 아들의 키를 예측 (X=[아빠, 엄마], Y1=[아들]) => 필요없는 데이터는 제외하고 학습용으로 사용
X = df[['아빠', '엄마']]
Y1 = df['아들']
Y1
|
# [3] 아들 키를 예측하는 모델 만들어 분석하기
from sklearn.linear_model import LinearRegression #회귀분석_선형분석
model = LinearRegression()
model.fit(X, Y1) #해당 모델로 학습
# [4] 아들 모델 성능 평가하기
model.score(X, Y1) #1에 가까울수록 좋음
# [5] 결과를 표로 작성하기 (예측, 오차)
result = df[['아빠', '엄마','아들']]
result['아들예측'] = model.predict(X) #모델을 이용해서 예측 값 알아내기
result['아들오차'] = result['아들'] - result['아들예측']
result
|
9. 기울기(회귀계수), 절편확인, 객체를 파일로 저장
# [1] 기울기, 절편 확인하기
print(model.coef_)
print(model.intercept_)
|
# [2] 모델 저장하기
import shelve
with shelve.open('height') as data:
data['model_son'] = model
data['model_daughter'] = model_d
print('저장완료')
|
# [3] 모델 불러오기
import shelve
with shelve.open('height') as data:
A = data['model_son']
B = data['model_daughter']
print('불러오기 완료')
|
출처 : EduAtoZ