1. 데이터 분리
머신러닝을 위해서는 기본적으로 타겟 데이터와
변수들을 분리해야한다
x = data.drop(target, axis=1)
y = data[target]
코드로 변수 x와 y에 각각 변수 데이터와 타겟 데이터를 넣어주었다
여기서 target은 데이터프레임에서 결과값의 인덱스명이다
다음으로 학습에 사용할 데이터를 분리한다
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(x,y,test_size=0.3 ,random_state=1 , stratify= )
train_test_split을 임포트하고
x,y 데이터와, 해당 데이터에서 이후 테스트에 사용할 데이터의 비율을 test_size 옵션에 적어주면
데이터 내에서 랜덤으로 1-test_size 비율 만큼의 x,y값과 test_size 비율 만큼의 x,y값
4개를 반환한다
random_state옵션은 랜덤의 시드를 정해주는 옵션인데 시드를 정해주면 해당 시드에 해당하는 랜덤값을 반환한다
따로 적어주지 않을경우 무작위로 값이 반환된다
stratify= 옵션은 지정한 데이터의 값을 랜덤으로 돌릴때 같은 비율로 넣는 옵션이다
예를 들어 y의 범주 값이 여러 개 일 때 비율을 같게 학습시키고 싶다면 y를 넣어주면 된다
선형 회귀와는 상관 없는 옵션이다
2 데이터 학습
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_absolute_error
코드를 통해
LinearRegression 함수와 mean_absolute_error 함수를 불러온다
이후
model = LinearRegression()
코드로 모델 변수를 지정해 준 다음
model.fit(x_train, y_train)
fit매소드로 학습을 시킬 수 있다
3 완성된 모델 테스트 하기
y_pred = model.predict(x_test)
코드로 완성된 모델에 테스트를 위해 만든 x_test 값을 넣어서 y_pred에 저장했다
반환되는 값은 넘파이 배열로 반환이 된다
mean_absolute_error(y_test, y_pred)
간단하게 mae를 사용하여 평가를 진행 하는 코드다
ex)
plt.figure(figsize=(10,6))
plt.plot(y_pred, label='pred')
plt.plot(y_test.values, label='real')
plt.legend()
plt.axhline(y_mean, color='r')
plt.show()
+ 성능 평가 도구 mae가 뭔지 궁금하다면
https://bigcat5312.tistory.com/78
머신러닝 지도학습 - 회귀모델 성능 평가 데이터의 이해
평가도구 mean_absolute_error mean_absolute_percentage_error mean_squared_error root_mean_squared_error r2_score mean_absolute_error(MAE) 예측값과 실제 값의 차이(오차)의 절대값의 평균 MAE = (1/n) * Σ|yᵢ - ŷᵢ| mean_absolute_perce
bigcat5312.tistory.com
'파이썬 > 머신러닝-지도학습' 카테고리의 다른 글
파이썬 머신러닝 지도학습 - K-Nearest Neigbor(KNN) (분류, 회귀) (0) | 2023.09.16 |
---|---|
파이썬 머신러닝 지도학습 - 데이터 분리 (sklearn - train_test_split (0) | 2023.09.16 |
머신러닝 지도학습 - 분류모델 성능 평가 데이터의 이해 - sklearn.metrics (0) | 2023.09.16 |
머신러닝 지도학습 - 회귀모델 성능 평가 데이터의 이해-sklearn.metrics (0) | 2023.09.16 |
머신러닝 지도학습 - 회귀와 분류, 분석도구 (0) | 2023.09.16 |