Data Science and Machine Learning - #33 KNN II
28/01/2022Neste vídeo daremos continuidade ao curso de Aprendizado de Máquina e Ciência de Dados explorando a fundo o algorítimo KNN (K Vizinhos Mais Próximos).
Aprofundando em KNN no Python
Divisão em Dados de Treino e Teste
Vamos dividir o nosso conjunto de 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)
X_train.shape
X_test.shape
Escalonamento de Dados
Como possuímos features com números muito distantes, precisamos escalonar, normalizar, esses valores antes de iniciar o algorítimo para que nosso modelo não priorize determinada série em deterimento a outra.
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 melhores hiperparâmetros
Com a escolha dos melhores hiperparâmetros conseguimos extrair dados mais precisos do nosso conjunto de dados.
params = [
{
'n_neighbors':[1,3,6,9,12,15],
'weights':['uniform','distance']
}
]
ins = KNeighborsClassifier(n_neighbors=6, weights='distance')
#grid_search = GridSearchCV(ins,params,cv=5)
#grid_search.fit(X_train,y_train)
#grid_search.best_params_
Ajustando e Fazendo Previsões
Vamos fazer previsões dos valores de treino e verificar se no teste os valores batem:
ins.fit(X_train,y_train)
pred = ins.predict(X_test)
pred[:5]
y_test[:5]
Testando o desempenho
Vamos verificar se este modelo de algorítimo é adequado para o nosso conjunto de dados:
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
Por hoje é só! Sucesso nos códigos e na vida!