Corr TP2
Corr TP2
Corr TP2
CORRECTION TP2
PRÉSENTÉ PAR
import warnings
warnings.filterwarnings('ignore')
IIT-Sfax
Taoufik Ben Abdallah 2
Travaux pratiques n°2
#Chargement du fichier
data_credit=pd.read_csv('/content/drive/MyDrive/credit.csv')
data_credit.head()
IIT-Sfax
Taoufik Ben Abdallah 3
Travaux pratiques n°2
# Autre solution
plt.title("Répartition des classes")
plt.hist(data_credit['C'], bins=2,rwidth = 0.5)
positions = (0.25, 0.75)
labels = ('+','-')
plt.xticks(positions, labels)
plt.show()
IIT-Sfax
Taoufik Ben Abdallah 4
Travaux pratiques n°2
X_cat=data_credit.iloc[:,col_cat]
enc = OneHotEncoder(sparse=False)
arr=enc.fit_transform(X_cat)
data_t=pd.DataFrame(arr)
data_t.head()
IIT-Sfax
Taoufik Ben Abdallah 5
Travaux pratiques n°2
IIT-Sfax
Taoufik Ben Abdallah 6
Travaux pratiques n°2
df_credit=pd.concat([data_t,
data_credit.iloc[:,col_num],
data_credit['C']], axis=1,ignore_index=True)
for i in range(df_credit.shape[1]-1):
df_credit=df_credit.rename(columns={i: 'A'+str(i+1)})
df_credit=df_credit.rename(columns={df_credit.shape[1]-1: 'C'})
df_credit.head(3)
…
IIT-Sfax
Taoufik Ben Abdallah 7
Travaux pratiques n°2
X = df_credit.iloc[:,:df_credit.shape[1]-1].values
Y = df_credit.iloc[:, df_credit.shape[1]-1].values
print("X=\n", X)
print("Y=\n", Y)
IIT-Sfax
Taoufik Ben Abdallah 8
Travaux pratiques n°2
cls_credit1.classes_
IIT-Sfax
Taoufik Ben Abdallah 9
Travaux pratiques n°2
r = export_text(cls_credit1,
feature_names=features[:len(features)-1])
print(r)
IIT-Sfax
Taoufik Ben Abdallah 10
Travaux pratiques n°2
Y_p_train = cls_credit1.predict(X_train)
cm=confusion_matrix(Y_train, Y_p_train)
print(cm)
IIT-Sfax
Taoufik Ben Abdallah 11
Travaux pratiques n°2
accuracy_score(Y_train,Y_p_train)
IIT-Sfax
Taoufik Ben Abdallah 12
Travaux pratiques n°2
cls_credit2 = DecisionTreeClassifier(max_depth=3,
max_features="sqrt")
IIT-Sfax
Taoufik Ben Abdallah 13
Travaux pratiques n°2
print(confusion_matrix(Y,y_pred))
print("Accuracy: {:.3f}".format(accuracy_score(Y,y_pred)))
#ou bien
from statistics import mean
scores=cross_val_score(cls_credit2, X, Y, cv=10)
print(scores)
print("Accuracy: {:.3f}".format(scores.mean()))
IIT-Sfax
Taoufik Ben Abdallah 14
Travaux pratiques n°2
cls_credit3 = RandomForestClassifier(n_estimators=120,max_features=30,
bootstrap=True, max_samples=0.63)
cls_credit3.fit(X_train,Y_train)
IIT-Sfax
Taoufik Ben Abdallah 15
Travaux pratiques n°2
Y_train_p=cls_credit3.predict(X_train)
Y_test_p=cls_credit3.predict(X_test)
IIT-Sfax
Taoufik Ben Abdallah 16
Travaux pratiques n°2
error_rate=[]
nbt=list(range(10, 200,20))
for i in nbt :
cls_credit3.set_params(n_estimators=i)
cls_credit3.fit(X_train,Y_train) #15
oob_error = 1 - cls_credit3.oob_score_ cls_credit3 = RandomForestClassifier(
error_rate.append(oob_error) n_estimators=120, max_features=30,
bootstrap=True, max_samples=0.63,
oob_score=True)
plt.plot(nbt, error_rate)
plt.xlim(10, 200)
plt.xlabel("n_estimators"); plt.ylabel("OOB error rate")
plt.show()
min_value = min(error_rate)
print ("n_estimators*=", nbt[error_rate.index(min_value)])
IIT-Sfax
Taoufik Ben Abdallah 17
الحصة الحادية عشر
Travaux pratiques n°2
18. Représenter la courbe ROC associée au modèle 𝒄𝒍𝒔_𝒄𝒓𝒆𝒅𝒊𝒕𝟑 sur les données de test, puis déduire
son AUC (utiliser les fonctions roc_curve et roc_auc_score de la bibliothèque sklearn.metrics)
plt.plot(fpr, tpr)
plt.xlabel("False Positive Rate")
plt.ylabel("True Positive Rate")
plt.show()
auc_dt = roc_auc_score(Y_test,ar)
print("AUC=", auc_dt)
IIT-Sfax
Taoufik Ben Abdallah 19