[빅분기] 머신러닝
2022. 6. 13. 18:40ㆍPython
1. 데이터 검토
pandas 라이브러리 임포트
import pandas as pd
파일 불러오기
data = pd.read_csv('breast-cancer-wisconsin.csv')
데이터 확인 : y값의 범주형 여부 확인 ,이상치 여부 확인
data.info()
data.head()
print(data.shape)
data.describe
data.hist(bins=50, figsize=(20,15))
2. x, y 나누기
X = data[data.columns[0:5]]
y = data[['house_value']]
print(X.shape)
print(y.shape)
3. train-test 데이터 셋 나누기
라이브러리 임포트
from sklearn.model_selection import train_test_split
train-test 데이터 셋 나누기
- y 가 범주형일때 : stratify=y로 설정
X_train, X_test, y_train, y_test = train_test_split(X1,y,stratify=y , random_state=100)
- y가 연속형일때
X_trian, X_test, y_trian, y_test = train_test_split(X,y,random_state=100)
4. 정규화
- MinMaxScaler
from sklearn.preprocessing import MinMaxScaler
scaler_minmax = MinMaxScaler()
# 훈련 데이터
scaler_minmax.fit(X_train)
X_scaled_minmax_train = scaler_minmax.transform(X_train)
pd.DataFrame(X_scaled_minmax_train).describe()
# 테스트 데이터
X_scaled_minmax_test = scaler_minmax.transform(X_test)
pd.DataFrame(X_scaled_minmax_test).describe()
## 테스트 데이터에서는 fit 과정 불필요
- StandardScaler
from sklearn.preprocessing import StandardScaler
scaler_standard = StandardScaler()
# 훈련 데이터
scaler_standard.fit(X_train)
X_scaled_standard_train = scaler_standard.transform(X_train)
pd.DataFrame(X_scaled_standard_train).describe()
# 테스트 데이터
X_scaled_standard_test = scaler_standard.transform(X_test)
pd.DataFrame(X_scaled_standard_test).describe()
5. 모델 학습
라이브러리 및 모델에 할당
- 로지스틱 회귀분석
from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
model.fit(X_scaled_minmax_train, y_train)
- 선형회귀
from sklearn.linear_model import LinearRegression
model=LinearRegression()
model.fit(X_scaled_minmax_train, y_train)
# 훈련 데이터
pred_train = model.predict(X_scaled_minmax_train)
model.score(X_scaled_minmax_train,y_train)
# 테스트 데이터
pred_test = model.predict(X_scaled_minmax_test)
model.score(X_scaled_minmax_test,y_test)
6. 예측값 병합 및 저장
# 훈련 데이터
pred_train = model.predict(X_scaled_minmax_train)
y_train[['y_pred']] = pred_train
y_train
# 테스트 데이터
pred_test = model.predict(X_scaled_minmax_test)
y_test[['y_pred']] = pred_test
y_test
Total_test = pd.concat([X_test, y_test],axis=1 )
Total_test.to_csv('regression_test.csv')
'Python' 카테고리의 다른 글
크롤링 (0) | 2022.07.08 |
---|---|
[빅분기] 작업형 1 (0) | 2022.06.23 |
[빅분기] 결측값을 집단 평균값으로 대체 (0) | 2022.06.08 |
[Numpy] where 함수 (0) | 2022.06.08 |
빅분기 실기 Chapter2 (0) | 2022.06.07 |