[머신러닝] 5. 사이킷런 머신러닝

PurinYun·2023년 11월 23일
0

AIffel

목록 보기
22/75

1. train_test_split

-사이킷런의 train_test_split 라이브러리를 활용하면
쉽게 train set(학습데이터셋)과 test set(테스트셋)을 랜덤하게 나누어 준다.

2. test_size=0.3

-학습용으로 70%를 두고
30% 데이터는 테스트용으로 둔다.

3. random_state

-모델이 좋아서 성능이 좋은 건지 알기 위해
반복 연산시 일정하게 섞기 위해 사용하며
random값을 고정하여 동일한 결과를 얻을 수 있다.

머신러닝: 분류

1) 검증데이터 분리

# 검증데이터 분리
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개로 분리 후,
머신러닝에 넣어보자!

2) 의사결정나무 (DecisionTree)

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

3) 평가 (accuracy)

정확도이므로 높을수록 좋은 성능!

# 정확도 accuracy_score(실제값, 예측값)
from sklearn.metrics import accuracy_score
accuracy_score(y_test, pred)

머신러닝: 회귀

사이킷런의 장점은 회귀/분류 여부와 상관없이 유사한 형태로 머신러닝 진행이 가능

1) 검증데이터 분리

# 검증데이터 분리
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

2) 선형회귀 (LinearRegression)

# 머신러닝(회귀)
from sklearn.linear_model import LinearRegression

# 모델 선택
model = LinearRegression()
# 학습
model.fit(X_train, y_train)
# 예측
pred = model.predict(X_test)
pred

3) 평가 (MSE)

오차값이므로 낮을수록 좋은 성능!

# 정확도 mean_squared_error(실제값, 예측값)
from sklearn.metrics import mean_squared_error
mean_squared_error(y_test, pred)
profile
Fantivation

0개의 댓글