import pandas as pd
pd.options.display.max_rows=20
pd.options.display.max_columns=10
data = pd.read_csv('../dataset/train.csv')
data.head()
data.describe()
data.info()
파일을 github에서 바로 로드하는 방법은 아래와 같습니다.
- 경로조정전: https://github.com/Suji04/ML_from_Scratch/blob/master/Breast_cancer_data.csv
- 경로조정후: https://raw.githubusercontent.com/Suji04/ML_from_Scratch/master/Breast_cancer_data.csv
datapath = "https://raw.githubusercontent.com/Suji04/ML_from_Scratch/master/Breast_cancer_data.csv"
import pandas as pd
data = pd.read_csv(datapath)
시간 측정하는 방법은 아래와 같습니다.
import time
start = time.time()
# Operation
print('Elased time: %0.2fs' % (time.time()-start))
Train/Test dataset 분리를 합니다.
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=2)
xgboost-heart-desease.ipynb와 같이 분류에서 score(accuracy)를 확인합니다.
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
from sklearn.metrics import accuracy_score
score = accuracy_score(y_pred, y_test)
print('Accuracy: %0.2f' % (score))
이때의 결과는 아래와 같습니다.
Accuracy: 0.84
xgboost-heart-desease.ipynb와 같이 교차검증(cross validation)으로 분류에서 Accuacy를 구합니다.
from sklearn.model_selection import cross_val_score
import numpy as np
scores = cross_val_score(model, X, y, cv=5)
print('Accuracy:', np.round(scores, 2))
print('Avg. Accuracy: %0.2f' % (scores.mean()))
xgboost-heart-desease.ipynb와 같이 교차검증으로 회귀에서 RMSE를 구할 수 있습니다.
from sklearn.model_selection import cross_val_score
model = LinearRegression()
scores = cross_val_score(model, X, y, scoring='neg_mean_squared_error', cv=50)
rmse = np.sqrt(-scores)
print('RMSE:', np.round(rmse, 2))
print('Avg. RMSE: %0.2f' % (rmse.mean()))
xgboost-heart-desease.ipynb와 같이 분류에서 accuracy, precision, recall, f1-score을 아래와 같이 확인합니다.
from sklearn.metrics import classification_report
print(classification_report(y_true=y_test, y_pred = y_pred))
이때의 결과는 아래와 같습니다.
xgboost-heart-desease.ipynb와 같이 Feature Importance의 값을 아래와 같이 확인합니다.
print(model.feature_importances_)
이때의 결과는 아래와 같습니다.
중요도를 그림으로 표시합니다.
import xgboost as xgb
feature_data = xgb.DMatrix(X_test)
model.get_booster().feature_names = feature_data.feature_names
model.get_booster().feature_types = feature_data.feature_types
import matplotlib.pyplot as plt
fig, ax = plt.subplots(figsize=(15, 8))
xgb.plot_importance(model, ax=ax, importance_type='gain')
이때의 결과는 아래와 같습니다.
random-forest-census.ipynb와 같이 모델의 parameter들을 확인합니다.
best_model.get_params(deep=True)
이때의 결과는 아래와 같습니다.