Home
Button Mobile Webdesign em Foco
Newsletter Webdesign em Foco
Support Webdesign em Foco
Contribuition Webdesign em Foco
Doe para a Webdesign em Foco
Suporte da Webdesign em Foco
Fechar

Data Science and Machine Learning - #34 SVM

08/02/2022

No tutorial de hoje aprenderemos um novo modelo de generalização de dados, conhecido como SVM (Suport Vector Machine).

Aprendendo o Algorítimo SVM

Importando Módulos

Vamos começar importando os módulos necessários:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.svm import SVC
from sklearn.model_selection import train_test_split, GridSearchCV,cross_val_score
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import classification_report, confusion_matrix
%matplotlib inline

Importando Data Frame e Preparando os Dados

Vamos importar o Data Frame de diagnóstico de câncer e vamos preparar os dados para uso desse algorítimo:

df = pd.read_csv("cancer.csv")
df.head()

del df["id"]

del df["Unnamed: 32"]

df['diagnosis'].unique()

idCat, cat = pd.factorize(df['diagnosis'])
idCat
#M = 0 B = 1
df['diagnosisCat']=idCat

del df['diagnosis']

df.head()

Divisão dos Dados em Treino e Teste

Vamos dividir os nossos dados em treino e teste:

X = df.drop('diagnosisCat',axis=1)
y = df['diagnosisCat']
y.head()

X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.2, random_state=100)

Escalonamento dos Dados

Agora padronizaremos nossos dados na mesma escala para que o algorítimo não dê maior importância a números maiores:

sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_train = pd.DataFrame(X_train, columns=X.columns)
X_test = sc.transform(X_test)
X_test = pd.DataFrame(X_test, columns=X.columns)
X_test

Escolhendo os melhores hiperparâmetros

Vamos escolher os melhores hiperparâmetros para o nosso algorítimo:

params = [
    {
        'C':[0.1,1,10,100,100],
        'gamma':[0.1,1,10,100,100]
    }
]
ins = SVC(gamma=0.1)
#grid_search = GridSearchCV(ins,params,cv=10)
#grid_search.fit(X_train,y_train)
#grid_search.best_params_

Ajustando e Fazendo Previsões

Iremos fazer as previsões se pelos dados os pacientes possuem câncer benigno ou maligno:

ins.fit(X_train,y_train)
pred = ins.predict(X_test)
pred[:5]

y_test[:5]

Testando o Desempenho

Vamos testar o desempenho do algorítimo para verificar sua eficiência:

ins.score(X_test,y_test)

cross = cross_val_score(ins,X_test,y_test,cv=10,scoring="accuracy")
final = sum(cross) / len(cross)
final

print(classification_report(y_test,pred))

print(confusion_matrix(y_test,pred))

Por hoje é só! Sucesso nos códigos e na vida!

Receba as aulas da Webdesign em Foco em Seu Email
Suporte Webdesign em Foco

Posts Relacionados

Cadastro e Login com Python - #07 Permissões e Níveis de Acesso
Hoje começaremos a aprender como definir permissões e níveis de acesso dentro do sistema de cadastro e login com Python.
Saiba mais!
Cadastro e Login com Python - #08 Deploy
Na aula de hoje iremos fazer o deploy da nossa aplicação utilizando o Python com Django e o banco de dados MySQL.
Saiba mais!
Python
Nesta seção aprofundaremos os conhecimentos sobre uma das linguagens em maior ascenção no mercado, o Python.
Saiba mais!