Ajustarea hiperparametrilor în Python

Ajustarea hiperparametrilor în Python

Alex Scriven

Data Scientist

Introducere

 

De ce să urmați acest curs?

  • Algoritmi noi și complecși cu mulți hiperparametri
  • Ajustarea poate consuma mult timp
  • Dezvoltă o înțelegere mai profundă față de setările implicite

S-ar putea să fiți surprins de ce se ascunde în interior!

Ajustarea hiperparametrilor în Python

Setul de date

 

Setul de date se referă la neplata cardurilor de credit.

Conține variabile legate de istoricul financiar al unor consumatori din Taiwan. Are 30.000 de utilizatori și 24 de atribute.

Ținta modelării este dacă au înregistrat neplată la credit

Datele au fost deja preprocesate; uneori vom folosi eșantioane mai mici pentru a ilustra un concept

Informații suplimentare despre set de date:

https://archive.ics.uci.edu/ml/datasets/default+of+credit+card+clients

Ajustarea hiperparametrilor în Python

Prezentare generală a parametrilor

 

Ce este un parametru?

  • Componente ale modelului învățate în procesul de modelare
  • Nu le setați manual (de fapt, nici nu puteți!)
  • Algoritmul le descoperă automat
Ajustarea hiperparametrilor în Python

Parametri în Regresia Logistică

Un model simplu de regresie logistică:

log_reg_clf = LogisticRegression() 
log_reg_clf.fit(X_train, y_train)

print(log_reg_clf.coef_)
array([[-2.88651273e-06, -8.23168511e-03,  7.50857018e-04,
         3.94375060e-04,  3.79423562e-04,  4.34612046e-04,
         4.37561467e-04,  4.12107102e-04, -6.41089138e-06,
        -4.39364494e-06,  cont... ]])
Ajustarea hiperparametrilor în Python

Parametri în Regresia Logistică

Organizarea coeficienților:

# Get the original variable names
original_variables = list(X_train.columns)

# Zip together the names and coefficients zipped_together = list(zip(original_variables, log_reg_clf.coef_[0])) coefs = [list(x) for x in zipped_together]
# Put into a DataFrame with column labels coefs = pd.DataFrame(coefs, columns=["Variable", "Coefficient"])
Ajustarea hiperparametrilor în Python

Parametri în Regresia Logistică

 

Acum sortați și afișați primii trei coeficienți

coefs.sort_values(by=["Coefficient"], axis=0, inplace=True, ascending=False)
print(coefs.head(3))

tabel cu coeficienți

Ajustarea hiperparametrilor în Python

Unde se găsesc parametrii

 

Pentru a găsi parametrii avem nevoie de:

  1. Cunoștințe despre algoritm
  2. Consultarea documentației Scikit-Learn

Parametrii se găsesc în secțiunea „Attributes", nu în secțiunea „parameters"!

Ajustarea hiperparametrilor în Python

Parametri în Random Forest

Dar algoritmii bazați pe arbori?

Random Forest nu are coeficienți, ci decizii la noduri (ce caracteristică și ce valoare să utilizeze pentru împărțire).

# A simple random forest estimator
rf_clf = RandomForestClassifier(max_depth=2)
rf_clf.fit(X_train, y_train)

# Pull out one tree from the forest chosen_tree = rf_clf.estimators_[7]

Pentru simplitate, vom prezenta produsul final (o imagine) al arborelui de decizie. Puteți explora pachetul utilizat (graphviz & pydotplus) pe cont propriu.

Ajustarea hiperparametrilor în Python

Diagrama de flux a deciziilor unui arbore unic din Random Forest

Ajustarea hiperparametrilor în Python

Extragerea deciziilor din noduri

Putem extrage detaliile nodului stâng, al doilea de sus:

# Get the column it split on
split_column = chosen_tree.tree_.feature[1]
split_column_name = X_train.columns[split_column]

# Get the level it split on split_value = chosen_tree.tree_.threshold[1]
print("This node split on feature {}, at a value of {}" .format(split_column_name, split_value))

„This node split on feature PAY_0, at a value of 1.5"

Ajustarea hiperparametrilor în Python

Să exersăm!

Ajustarea hiperparametrilor în Python

Preparing Video For Download...