Python implementa algoritmo de inteligência de morcego híbrido HBA para otimizar o combate do projeto do modelo de classificação de rede neural BP (algoritmo de classificação de rede neural BP)

Explicação: Este é um projeto prático de aprendizado de máquina (com dados + código + documentação + explicação em vídeo). Se você precisar de dados + código + documentação + explicação em vídeo, pode ir diretamente ao final do artigo para obtê-lo.



 


 1. Plano de fundo do projeto

O algoritmo do morcego é um algoritmo de busca heurística proposto pelo professor Yang com base na inteligência de enxame em 2010, e é um método eficaz para buscar a solução ótima global. Com base na otimização iterativa, o algoritmo é inicializado para um conjunto de soluções aleatórias e, em seguida, procura iterativamente a solução ótima e gera novas soluções locais por voo aleatório em torno da solução ótima para aumentar a velocidade de pesquisa local. O algoritmo tem as características de implementação simples e poucos parâmetros.

Tendo em vista os defeitos do algoritmo bat básico, como velocidade de convergência lenta, facilidade de cair no ótimo local e baixa precisão da solução, um algoritmo bat híbrido combinado com busca local é proposto para resolver problemas de otimização irrestrita. O algoritmo usa sequências caóticas para inicializar a posição e a velocidade dos morcegos, o que estabelece as bases para a diversidade da pesquisa global; integra a pesquisa de Powell para aprimorar a capacidade de pesquisa local do algoritmo e acelerar a velocidade de convergência; usa estratégia de mutação para evitar a algoritmo caia no ótimo local até certo ponto. excelente.

Este projeto otimiza o modelo de classificação da rede neural BP através do algoritmo HBA híbrido de inteligência de morcego.

2. Aquisição de Dados

Os dados de modelagem para este tempo vêm da Internet (compilados pelo autor deste projeto), e as estatísticas dos itens de dados são as seguintes:

Os detalhes dos dados são os seguintes (exibição parcial):

 

3. Pré-processamento de dados

3.1 Visualizar dados com a ferramenta  Pandas

Use o método head() da ferramenta Pandas para visualizar as cinco primeiras linhas de dados:

Código chave:

 

3.2 Visualização de falta de dados

Use o método info() da ferramenta Pandas para visualizar informações de dados:

 

Como pode ser visto na figura acima, há um total de 11 variáveis, nenhum valor ausente nos dados e um total de 2.000 dados.

Código chave:

3.3 Dados estatísticos descritivos 

Use o método describe() da ferramenta Pandas para visualizar a média, desvio padrão, mínimo, quantil e máximo dos dados.

O código da chave é o seguinte:

 

4. Análise Exploratória de Dados

4.1 Histograma de variáveis ​​y 

Use o método plot() da ferramenta Matplotlib para desenhar um histograma:

4,2 y=1 amostra x1 histograma de distribuição variável

Use o método hist() da ferramenta Matplotlib para desenhar um histograma:

4.3 Análise de correlação

 

Como pode ser visto na figura acima, quanto maior o valor, mais forte a correlação. Um valor positivo é uma correlação positiva e um valor negativo é uma correlação negativa.

5. Engenharia de recursos

5.1 Estabelecer dados de características e dados de etiquetas

O código da chave é o seguinte:

5.2 Divisão do conjunto de dados

Use o método train_test_split() para dividir de acordo com 80% do conjunto de treinamento e 20% do conjunto de teste. O código-chave é o seguinte:

6. Construir o algoritmo de otimização de morcego híbrido HBA para otimizar o modelo de classificação de rede neural BP

Use principalmente o algoritmo de otimização de morcego híbrido HBA para otimizar o algoritmo de classificação de rede neural BP para classificação de alvo.

6.1 Parâmetros ótimos pesquisados ​​pelo algoritmo de otimização de morcego híbrido HBA   

Parâmetros ideais:

6.2 Modelo de construção de valor de parâmetro ideal

 

6.3 Informações resumidas do modelo de parâmetro ideal

 

6.4 Estrutura de rede do modelo de parâmetro ideal

 

6.5 Perda do conjunto de teste e curva de precisão do conjunto de treinamento do modelo de parâmetro ideal

 

7. Avaliação do modelo

7.1 Indicadores e resultados da avaliação

Os indicadores de avaliação incluem principalmente taxa de precisão, taxa de precisão, taxa de recuperação, pontuação F1 e assim por diante.

Pode-se ver na tabela acima que a pontuação F1 é de 0,855, indicando que o modelo funciona bem.

O código da chave é o seguinte:

7.2 Relatório de classificação

 

Como pode ser visto na figura acima, a pontuação F1 da classificação 0 é 0,85; a pontuação F1 da classificação 1 é 0,85.

7.3 Matriz de confusão

Como pode ser visto na figura acima, existem 19 amostras que são realmente 0 e previstas para não serem 0; 39 amostras que são realmente 1 e previstas para não serem 1, e a precisão geral da previsão é boa.  

8. Conclusão e Perspectivas

Para resumir, este artigo usa o algoritmo de otimização inteligente de morcego híbrido HBA para encontrar o valor do parâmetro ideal do algoritmo de rede neural BP da rede neural cíclica para construir o modelo de classificação e, finalmente, prova que o modelo que propusemos funciona bem. Este modelo pode ser usado para previsão de produtos do dia a dia.

# 初始化种群、初始解
Sol = np.zeros((N_pop, d))  # 初始化位置
Fitness = np.zeros((N_pop, 1))  # 初始化适用度
for i in range(N_pop):  # 迭代种群
    Sol[i] = np.random.uniform(Lower_bound, Upper_bound, (1, d))  # 生成随机数
    Fitness[i] = objfun(Sol[i])  # 适用度



# ******************************************************************************
 
# 本次机器学习项目实战所需的资料,项目资源如下:
 
# 项目说明:
 
# 链接:https://pan.baidu.com/s/1c6mQ_1YaDINFEttQymp2UQ
 
# 提取码:thgk
 
# *****************************************************************************



#  y变量柱状图
plt.rcParams['font.sans-serif'] = ['SimHei']  # 指定默认字体
plt.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题
# kind='bar' 绘制柱状图
df['y'].value_counts().plot(kind='bar')
plt.xlabel("y变量")
plt.ylabel("数量")

 Para obter mais práticas de projeto, consulte a lista de coleções de práticas de projetos de aprendizado de máquina:

Lista de coleções de combate reais de projetos de aprendizado de máquina


Acho que você gosta

Origin blog.csdn.net/weixin_42163563/article/details/131762532
Recomendado
Clasificación