Índice:
- Como carregar seus dados
- A linha 1 importa a biblioteca que permite dividir o conjunto de dados em duas partes.
- Como executar os dados de teste
- Então, como o modelo de regressão logística com o parâmetro C = 150 se compara com isso? Bem, você não pode vencer 100 por cento. Aqui está o código para criar e avaliar o classificador logístico com C = 150: >>>> logClassifier_2 = linear_model. LogisticRegression (C = 150, random_state = 111) >>> logClassifier_2. fit (X_train, y_train) >>> predito = logClassifier_2. Prever (X_test) >>> métricas. accuracy_score (y_test, predito) 0. 93333333333333335 >>> métricas. array confusion_matrix (y_test, predito) ([[5, 0, 0], [0, 2, 0], [0, 1, 7]])
Vídeo: Regressão Logística em Python 2024
Depois de criar seu primeiro modelo de classificação preditivo para análise dos dados, criar mais modelos, como é uma tarefa muito direta no scikit. A única diferença real de um modelo para o outro é que você pode ter que ajustar os parâmetros do algoritmo ao algoritmo.
Como carregar seus dados
Esta lista de códigos irá carregar o conjunto de dados da íris na sua sessão: >>>> da sklearn. datasets import load_iris >>> iris = load_iris ()
Como criar uma instância do classificador
Observe o parâmetro (parâmetro de regularização) no construtor. O
parâmetro de regularização
é usado para evitar a superposição. O parâmetro não é estritamente necessário (o construtor funcionará bem sem ele porque será padrão para C = 1). Criar um classificador de regressão logística usando C = 150 cria um gráfico melhor da superfície de decisão. Você pode ver ambos os gráficos abaixo.
A linha 1 importa a biblioteca que permite dividir o conjunto de dados em duas partes.
A Linha 2 chama a função da biblioteca que divide o conjunto de dados em duas partes e atribui os conjuntos de dados agora divididos a dois pares de variáveis.
A linha 3 leva a instância do classificador de regressão logistica que você acabou de criar e chama o método de ajuste para treinar o modelo com o conjunto de dados de treinamento.
Como visualizar o classificador
Olhando para a área de superfície de decisão no gráfico, parece que alguns ajustes precisam ser feitos. Se você olhar perto do meio do enredo, você pode ver que muitos dos pontos de dados pertencentes à área do meio (Versicolor) estão na área ao lado direito (Virginica).
Esta imagem mostra a superfície de decisão com um valor C de 150. Aparentemente parece melhor, então escolher usar esta configuração para o seu modelo de regressão logística parece apropriado.
Como executar os dados de teste
No código a seguir, a primeira linha alimenta o conjunto de dados de teste para o modelo e a terceira linha exibe a saída: >>>> predito = classificador de logs. Prever (X_test) >>> preditoarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2])
Como avaliar o modelo < Você pode fazer uma referência cruzada da saída da previsão em relação à matriz y_test. Como resultado, você pode ver que previu todos os pontos de dados de teste corretamente. Aqui está o código: >>>> a partir de métricas de importação de sklearn >>> preditoarray ([0, 0, 2, 2, 1, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> y_testarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> métricas. accuracy_score (y_test, predito) 1. 0 # 1. 0 é 100 por cento de precisão >>> predito == y_testarray ([Verdadeiro, Verdadeiro, Verdadeiro, Verdadeiro, Verdadeiro, Verdadeiro, Verdadeiro, Verdadeiro, Verdadeiro, Verdadeiro, Verdadeiro, Verdadeiro, Verdadeiro, Verdadeiro, Verdadeiro], dtype = bool)
Então, como o modelo de regressão logística com o parâmetro C = 150 se compara com isso? Bem, você não pode vencer 100 por cento. Aqui está o código para criar e avaliar o classificador logístico com C = 150: >>>> logClassifier_2 = linear_model. LogisticRegression (C = 150, random_state = 111) >>> logClassifier_2. fit (X_train, y_train) >>> predito = logClassifier_2. Prever (X_test) >>> métricas. accuracy_score (y_test, predito) 0. 93333333333333335 >>> métricas. array confusion_matrix (y_test, predito) ([[5, 0, 0], [0, 2, 0], [0, 1, 7]])
Esperamos melhor, mas foi realmente pior. Houve um erro nas previsões. O resultado é o mesmo que o modelo Support Vector Machine (SVM).
Aqui está a lista completa do código para criar e avaliar um modelo de classificação de regressão logística com os parâmetros padrão: >>>> da sklearn. datasets import load_iris >>> de sklearn importar linear_model >>> de sklearn importar cross_validation >>> de sklearn importar métricas >>> iris = load_iris () >>> X_train, X_test, y_train, y_test = cross_validation. train_test_split (íris. data, íris. target, test_size = 0. 10, random_state = 111) >>> logClassifier = linear_model. LogisticRegression (, random_state = 111) >>> logClassifier. fit (X_train, y_train) >>> predito = logClassifier. Prever (X_test) >>> preditoarray ([0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> y_testarray ([0, 0, 2, 2, 1, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>> métricas. accuracy_score (y_test, predito) 1. 0 # 1. 0 é 100 por cento de precisão >>> predito == y_testarray ([Verdadeiro, Verdadeiro, Verdadeiro, Verdadeiro, Verdadeiro, Verdadeiro, Verdadeiro, Verdadeiro, Verdadeiro, Verdadeiro, Verdadeiro, Verdadeiro, Verdadeiro, Verdadeiro, Verdadeiro], dtype = bool)