Machine Learning: Classificação usando Python e Oracle ATP

Continuando o último artigo quando criamos um Jupyter Notebook e usamos o python para nos conectarmos a uma instância do Oracle Autonomous Transaction Processing Database, agora é hora de executar uma classificação usando a biblioteca de machine learning chamada Scikit-Learn.

Esta é uma demonstração simples usando o dataset Iris e em um futuro próximo eu pretendo mostrar um caso de uso mais real.

You can download the notebook here: https://github.com/waslleysouza/oracle_autonomous_jupyter/blob/master/atp_classification.ipynb.

Inicie o Jupyter Notebook e abra o seu notebook.
Primeiro, instale as bibliotecas python necessárias para machine learning.

# Install required ML libraries
!pip install scikit-learn xgboost

Importe as bibliotecas python necessárias para machine learning.

# Import required ML libraries
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import cross_val_score
from sklearn import tree
import xgboost as xgb

Separe recursos e rótulos em variáveis diferentes e imprima as três primeiras amostras de cada uma.

X = df.iloc[:, 0:4]
y = df.iloc[:, 4]

X.head(3)
y.head(3) 

Divida os dados em datasets de treinamento e teste.

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) 
print('Training set = {} samples, Test set = {} samples'.format(X_train.shape[0], X_test.shape[0]))

Escale os dados.

sc = StandardScaler()
sc.fit(X_train)
X_train_std = sc.transform(X_train)
X_test_std = sc.transform(X_test)

Agora é a hora da diversão!
Existem muitos algoritmos de aprendizado de máquina que podemos usar para classificação, por exemplo, Árvore de Decisão.

# Create object
decision_tree = tree.DecisionTreeClassifier(criterion='gini')

# Train DT based on scaled training set
decision_tree.fit(X_train_std, y_train)

# Print performance
print('The accuracy of the Decision Tree classifier on training data is {:.2f}'.format(decision_tree.score(X_train_std, y_train)))
print('The accuracy of the Decision Tree classifier on test data is {:.2f}'.format(decision_tree.score(X_test_std, y_test)))

Ou XGBoost.

# Create object
xgb_clf = xgb.XGBClassifier()

# Train DT based on scaled training set
xgb_clf = xgb_clf.fit(X_train_std, y_train)

# Print performance 
print('The accuracy of the XGBoost classifier on training data is {:.2f}'.format(xgb_clf.score(X_train_std, y_train)))
print('The accuracy of the XGBoost classifier on test data is {:.2f}'.format(xgb_clf.score(X_test_std, y_test)))

Bom trabalho!
Neste artigo, você aprendeu a usar alguns algoritmos de aprendizado de máquina para classificação dos dados da instância do Oracle Autonomous Transaction Processing Database por meio do Jupyter Notebook.

Divirta-se!

Autor: Waslley Souza

Consultor Oracle com foco em tecnologias Oracle Fusion Middleware e SOA. Certificado Oracle WebCenter Portal, Oracle ADF e Java.