머신러닝
이번 시간에는 사이킷런을 활용해서 머신러닝을 함께 진행해 보도록 하겠습니다.
이번 시간 정리
1. train_test_split
-사이킷런의 train_test_split 라이브러리를 활용하면 쉽게 train set(학습데이터셋)과 테스트셋을 랜덤하게 나누어 준다.
2. test_size=0.3
-학습용으로 70%를 두고 30% 데이터는 테스트용으로 둔다.
3. random_state
-반복 연산시 일정하게 섞기 위해 사용하며 random값을 고정하여 동일한 결과를 얻을 수 있다.
1. 머신러닝: 분류
아래의 코드 실행 버튼을 눌러 실습을 진행해 보세요!
1) 검증데이터 분리
코드 실행
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
/tmp/ipykernel_13/334835610.py in <module>
2 from sklearn.model_selection import train_test_split
3 X_train, X_test, y_train, y_test = train_test_split(
----> 4 cancer_df.drop('target', axis=1), cancer_df['target'], test_size=0.3, random_state=1004)
/opt/conda/lib/python3.9/site-packages/pandas/util/_decorators.py in wrapper(*args, **kwargs)
309 stacklevel=stacklevel,
310 )
--> 311 return func(*args, **kwargs)
312
313 return wrapper
/opt/conda/lib/python3.9/site-packages/pandas/core/frame.py in drop(self, labels, axis, index, columns, level, inplace, errors)
4904 weight 1.0 0.8
4905 """
-> 4906 return super().drop(
4907 labels=labels,
4908 axis=axis,
/opt/conda/lib/python3.9/site-packages/pandas/core/generic.py in drop(self, labels, axis, index, columns, level, inplace, errors)
4148 for axis, labels in axes.items():
4149 if labels is not None:
-> 4150 obj = obj._drop_axis(labels, axis, level=level, errors=errors)
4151
4152 if inplace:
/opt/conda/lib/python3.9/site-packages/pandas/core/generic.py in _drop_axis(self, labels, axis, level, errors)
4183 new_axis = axis.drop(labels, level=level, errors=errors)
4184 else:
-> 4185 new_axis = axis.drop(labels, errors=errors)
4186 result = self.reindex(**{axis_name: new_axis})
4187
/opt/conda/lib/python3.9/site-packages/pandas/core/indexes/base.py in drop(self, labels, errors)
6015 if mask.any():
6016 if errors != "ignore":
-> 6017 raise KeyError(f"{labels[mask]} not found in axis")
6018 indexer = indexer[~mask]
6019 return self.delete(indexer)
KeyError: "['target'] not found in axis"
코드 실행
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
/tmp/ipykernel_13/1562339779.py in <module>
1 # train 데이터 확인(X)
----> 2 X_train.head()
NameError: name 'X_train' is not defined
코드 실행
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
/tmp/ipykernel_13/1642986695.py in <module>
1 # 학습 데이터 확인(y)
----> 2 y_train.head()
NameError: name 'y_train' is not defined
코드 실행
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
/tmp/ipykernel_13/752611642.py in <module>
1 # 데이터 크기
----> 2 X_train.shape, X_test.shape, y_train.shape, y_test.shape
NameError: name 'X_train' is not defined
2) 의사결정나무 (DecisionTree)
코드 실행
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
/tmp/ipykernel_13/3663280255.py in <module>
5 model = DecisionTreeClassifier()
6 # 학습
----> 7 model.fit(X_train, y_train)
8 # 예측
9 pred = model.predict(X_test)
NameError: name 'X_train' is not defined
3) 평가 (accuracy)
코드 실행
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
/tmp/ipykernel_13/1332555200.py in <module>
1 # 정확도 accuracy_score(실제값, 예측값)
2 from sklearn.metrics import accuracy_score
----> 3 accuracy_score(y_test, pred)
NameError: name 'y_test' is not defined
2. 머신러닝: 회귀
아래의 코드 실행 버튼을 눌러 실습을 진행해 보세요!
1) 검증데이터 분리
코드 실행
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
/tmp/ipykernel_13/3250448475.py in <module>
2 from sklearn.model_selection import train_test_split
3 X_train, X_test, y_train, y_test = train_test_split(
----> 4 diabetes_df.drop('target', axis=1), diabetes_df['target'], test_size=0.3, random_state=1004)
NameError: name 'diabetes_df' is not defined
코드 실행
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
/tmp/ipykernel_13/1562339779.py in <module>
1 # train 데이터 확인(X)
----> 2 X_train.head()
NameError: name 'X_train' is not defined
코드 실행
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
/tmp/ipykernel_13/1642986695.py in <module>
1 # 학습 데이터 확인(y)
----> 2 y_train.head()
NameError: name 'y_train' is not defined
코드 실행
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
/tmp/ipykernel_13/752611642.py in <module>
1 # 데이터 크기
----> 2 X_train.shape, X_test.shape, y_train.shape, y_test.shape
NameError: name 'X_train' is not defined
2) 선형회귀 (LinearRegression)
코드 실행
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
/tmp/ipykernel_13/2785540142.py in <module>
5 model = LinearRegression()
6 # 학습
----> 7 model.fit(X_train, y_train)
8 # 예측
9 pred = model.predict(X_test)
NameError: name 'X_train' is not defined
3) 평가 (MSE)
샘플, 예시, 파라미터 값등 나와있어요
커뮤니티가면 블로그에 정보 나와있구요
튜토리얼도 학습할 수 있습니다~
(예시에 있는 코드들을 활용해보면서 혼자 학습해보세요)
'언어 > 파이썬' 카테고리의 다른 글
머신러닝with파이썬5강(2)_XGBoost, 교차검증 (0) | 2024.03.11 |
---|---|
머신러닝with파이썬5강(1)_의사결정나무, 랜덤포레스트 (0) | 2024.03.10 |
머신러닝with파이썬 4강(2)_데이터전처리: 범주형 데이터, 수치형 데이터 (0) | 2024.03.08 |
머신러닝with파이썬4강(1)_사이킷런 활용하기, 사이킷런에서 제공하는 데이터셋 (0) | 2024.03.07 |
머신러닝with파이썬3강(5)_그룹핑, apply함수 (0) | 2024.03.06 |