Índice:
- Carregando seus dados
- A linha 1 importa a biblioteca que permite dividir o conjunto de dados em duas partes.
- ([0, 0, 2, 2, 2, 0, 0, 2, 2, 1, 2, 0, 1, 2, 2]) >>>> matriz y_test
- Verdadeiro], dtype = bool)
Vídeo: Parte 4 - Árvore de Decisão, Random Forest e Gradient Boosting - Agora ou nunca! - Prof. Dri 2024
O modelo de floresta aleatória é um modelo de conjunto que pode ser usado em análises preditivas; É preciso um conjunto (seleção) de árvores de decisão para criar seu modelo. A idéia é levar uma amostra aleatória de aprendizes fracos (um subconjunto aleatório dos dados de treinamento) e fazê-los votar para selecionar o modelo mais forte e melhor. O modelo de floresta aleatória pode ser usado para classificação ou regressão. No exemplo a seguir, o modelo de floresta aleatória é usado para classificar a espécie Iris.
Carregando seus dados
Esta lista de códigos irá carregar o conjunto de dados
iris
em sua sessão: >>>> da sklearn. datasets import load_iris >>>> iris = load_iris ()
Criando uma instância do classificador
As duas linhas de código a seguir criam uma instância do classificador. A primeira linha importa a biblioteca da floresta aleatória. A segunda linha cria uma instância do algoritmo da floresta aleatória:
>>>> da sklearn. importação de conjunto RandomForestClassifier >>>> rf = RandomForestClassifier (n_estimators = 15,
random_state = 111)
O parâmetro
n_estimators
no construtor é um parâmetro de ajuste de uso comum para o modelo de floresta aleatória. O valor é usado para construir o número de árvores na floresta. Geralmente é entre 10 e 100 por cento do conjunto de dados, mas depende dos dados que você está usando. Aqui, o valor é definido em 15, que é 10 por cento dos dados. Mais tarde, você verá que alterar o valor do parâmetro para 150 (100 por cento) produz os mesmos resultados.
O n
_estimators
é usado para ajustar o desempenho do modelo e a sobreposição. Quanto maior o valor, melhor o desempenho, mas ao custo da superposição. Quanto menor o valor, maiores as chances de não superação, mas ao custo de um menor desempenho. Além disso, há um ponto em que o aumento do número geralmente se degradará na melhoria da precisão e pode aumentar drasticamente o poder computacional necessário. O parâmetro padrão é 10 se for omitido no construtor.
Você precisará dividir o conjunto de dados em conjuntos de treinamento e teste antes de criar uma instância do classificador de floresta aleatória. O código a seguir executará essa tarefa: >>>> de sklearn importar cross_validation >>>> X_train, X_test, y_train, y_test =
cross_validation. Train_test_split (íris. data,
iris. target, test_size = 0. 10, random_state = 111) >>>> rf = rf. caber (X_train, y_train)
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 floresta aleatória que você acabou de criar e, em seguida, chama o método de ajuste para treinar o modelo com o conjunto de dados de treinamento.
Execução dos dados de teste
No código a seguir, a primeira linha alimenta o conjunto de dados de teste para o modelo, então a terceira linha exibe a saída: >>>> predito = rf. prever (X_test) >>>> matriz predita
([0, 0, 2, 2, 2, 0, 0, 2, 2, 1, 2, 0, 1, 2, 2]) > Avaliando o modelo
Você pode fazer uma referência cruzada da saída da predição contra a matriz
- y_test
- . Como resultado, você pode ver que previu dois pontos de dados de teste incorretamente. Assim, a precisão do modelo de floresta aleatória foi de 86. 67 por cento.
- Aqui está o código: >>>> da lista de importações de sklearn >>>> tabela predita
([0, 0, 2, 2, 2, 0, 0, 2, 2, 1, 2, 0, 1, 2, 2]) >>>> matriz y_test
(0, 0, 2, 2, 1, 0, 0, 2, 2, 1, 2, 0, 2, 2, 2]) >>>> métricas. accuracy_score (y_test, predito)
0. 8666666666666667 # 1. 0 é 100% de precisão >>>> predito == y_test
matriz ([Verdadeiro, Verdadeiro, Verdadeiro, Verdadeiro, Falso, Verdadeiro, Verdadeiro,
Verdadeiro, Verdadeiro, Verdadeiro, Verdadeiro, Verdadeiro, Falso, Verdadeiro,
Verdadeiro], dtype = bool)
Como o modelo de floresta aleatória é executado se você altera o parâmetro
n_estimators
para 150? Parece que não vai fazer a diferença para este pequeno conjunto de dados. Produz o mesmo resultado: >>>> rf = RandomForestClassifier (n_estimators = 150, random_state = 111) >>>> rf = rf. caber (X_train, y_train) >>>> predito = rf. prever (X_test) >>>> matriz predita
([0, 0, 2, 2, 2, 0, 0, 2, 2, 1, 2, 0, 1, 2, 2]) >