-사이킷런의 train_test_split 라이브러리를 활용하면
쉽게 train set(학습데이터셋)과 test set(테스트셋)을 랜덤하게 나누어 준다.
-학습용으로 70%를 두고
30% 데이터는 테스트용으로 둔다.
-모델이 좋아서 성능이 좋은 건지 알기 위해
반복 연산시 일정하게 섞기 위해 사용하며
random값을 고정하여 동일한 결과를 얻을 수 있다.
# 검증데이터 분리
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(
cancer_df.drop('target', axis=1), cancer_df['target'], test_size=0.3, random_state=1004)
# train 데이터 확인(X)
X_train.head()
# 학습 데이터 확인(y)
y_train.head()
# 데이터 크기
X_train.shape, X_test.shape, y_train.shape, y_test.shape
데이터를 위와 같이 4개로 분리 후,
머신러닝에 넣어보자!
x,y의 train data를 통해 머신러닝을 학습시킨다.
x,y의 test data를 통해 예측을 한 결과값과 비교를 하여
머신러닝의 성능이 좋은지 판단을 한다!
# 머신러닝(분류)
from sklearn.tree import DecisionTreeClassifier
# 모델 선택
model = DecisionTreeClassifier()
# 학습
model.fit(X_train, y_train)
# 예측
pred = model.predict(X_test)
pred
정확도이므로 높을수록 좋은 성능!
# 정확도 accuracy_score(실제값, 예측값)
from sklearn.metrics import accuracy_score
accuracy_score(y_test, pred)
사이킷런의 장점은 회귀/분류 여부와 상관없이 유사한 형태로 머신러닝 진행이 가능
# 검증데이터 분리
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(
diabetes_df.drop('target', axis=1), diabetes_df['target'], test_size=0.3, random_state=1004)
# train 데이터 확인(X)
X_train.head()
# 학습 데이터 확인(y)
y_train.head()
# 데이터 크기
X_train.shape, X_test.shape, y_train.shape, y_test.shape
# 머신러닝(회귀)
from sklearn.linear_model import LinearRegression
# 모델 선택
model = LinearRegression()
# 학습
model.fit(X_train, y_train)
# 예측
pred = model.predict(X_test)
pred
오차값이므로 낮을수록 좋은 성능!
# 정확도 mean_squared_error(실제값, 예측값)
from sklearn.metrics import mean_squared_error
mean_squared_error(y_test, pred)