<jupyter_start><jupyter_text>**Introdução ao SVM** O SVM é um modelo bastante popular e versátil capaz de realizar classificações, regressões e detecção de outliers. Esse modelo funciona muito bem para classes linearmente separáveis.  **O que são classes linearmente separáveis?** Classes linearmente separáveis podem ser entendidas, de modo genérico, como classes que podem ser facilmente separadas por uma linha reta.<jupyter_code>from sklearn import datasets
import pandas as pd
import seaborn as sns
iris = datasets.load_iris()
iris_df = pd.DataFrame(data=iris.data, columns=iris.feature_names)
iris_df['label'] = iris.target
iris_df['species'] = pd.Categorical.from_codes(iris.target, iris.target_names)
iris_df.head()
# plotar em pares as características do DataFrame como o pacote Seaborn
sns.pairplot(iris_df[['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)',
                      'petal width (cm)', 'species']], hue='species')<jupyter_output><empty_output><jupyter_text>**Classificando o Iris dataset**<jupyter_code>from sklearn import svm
from sklearn.model_selection import  train_test_split
X = iris.data
y = iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=13)<jupyter_output><empty_output><jupyter_text>Instanciar o classificador<jupyter_code>classificador = svm.SVC(C=1.0)<jupyter_output><empty_output><jupyter_text>Treinamento do classificador<jupyter_code>classificador.fit(X_train, y_train)<jupyter_output><empty_output><jupyter_text>Predição do conjunto de teste<jupyter_code>classificador.predict(X_test)<jupyter_output><empty_output><jupyter_text>Score (acurácia) do modelo<jupyter_code>classificador.score(X_test, y_test)<jupyter_output><empty_output><jupyter_text>**Métricas de avalição de um classificador** Criando um relatório de classificação<jupyter_code>from sklearn.metrics import classification_report
y_pred = classificador.predict(X_test)
print(classification_report(y_test, y_pred, target_names=iris.target_names))<jupyter_output>precision    recall  f1-score   support

      setosa       1.00      1.00      1.00        14
  versicolor       0.86      1.00      0.92        12
   virginica       1.00      0.89      0.94        19

    accuracy                           0.96        45
   macro avg       0.95      0.96      0.96        45
weighted avg       0.96      0.96      0.96        45