[빅분기] 머신러닝

2022. 6. 13. 18:40Python

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