Pular para o conteúdo principal
Versões: 0.5.x

AIRS

Sistema Imunológico Artificial de Reconhecimento (AIRS)

Herança

Esta classe herda de BaseClassifier

Módulo: aisp.csa
Importação: from aisp.csa import AIRS


Visão geral

O Artificial Immune Recognition System (AIRS) é um algoritmo de classificação inspirado no processo de seleção clonal. Esta implementação é baseada na versão simplificada (AIRS2) descrita em 1. O algoritmo foi adaptado para suportar amostras com características com valores reais (contínuos) e binários (discretos).

observação

Esta implementação é inspirada no AIRS2, uma versão simplificada do algoritmo AIRS original, introduzindo adaptações para lidar com conjuntos de dados contínuos e binários.

Baseado no Algorithm 16.5 de Brabazon et al. 1

Trabalhos relacionados e notáveis: 2.


Exemplo

import numpy as np
from aisp.csa import AIRS

np.random.seed(1)
# Gerando dados para o treinamento
a = np.random.uniform(high=0.5, size=(50, 2))
b = np.random.uniform(low=0.51, size=(50, 2))
x_train = np.vstack((a, b))
y_train = [0] * 50 + [1] * 50
# Instancia do AIRS
airs = AIRS(n_resources=5, rate_clonal=5, rate_hypermutation=0.65, seed=1)
airs = airs.fit(x_train, y_train, verbose=False)
x_test = [
[0.15, 0.45], # Expected: Class 0
[0.85, 0.65], # Esperado: Classe 1
]
y_pred = airs.predict(x_test)
print(y_pred)

Output:

[0 1]

Parâmetros do Construtor

NomeTipoDefaultDescrição
n_resourcesfloat10Quantidade total de recursos disponíveis.
rate_clonalint10Número máximo de clones possíveis de uma classe. Esta quantidade é multiplicada por (estímulo da célula * rate_hypermutation) para definir o número de clones.
rate_mc_initfloat0.2Porcentagem de amostras usadas para inicializar a população de células de memória.
rate_hypermutationfloat0.75Taxa de clones mutados derivada de rate_clonal como um fator escalar.
affinity_threshold_scalarfloat0.75Limiar de afinidade normalizado.
kint3Número de vizinhos mais próximos (k-NN) que será usado para escolher um rótulo na predição.
max_itersint100Número máximo de interações no processo de refinamento do conjunto ARB exposto a aᵢ.
resource_amplifiedfloat1.0Amplificador de consumo de recursos, multiplicado com o estímulo para subtrair recursos.
metricstr"euclidean"Métrica de distância usada para calcular a afinidade entre células e amostras.
seedintNoneSeed para geração aleatória.
pfloat2Este parâmetro é usado na distância de Minkowski.

Atributos

NomeTipoPadrãoDescrição
cells_memoryOptional[Dict[str | int, list[BCell]]]-Armazena as células de memória por classe.

Métodos Públicos

fit

def fit(
self,
X: Union[npt.NDArray, list],
y: Union[npt.NDArray, list],
verbose: bool = True,
) -> AIRS:
...

Treina o modelo com os dados de entrada utilizando o algoritmo AIRS2.

A função fit(...), realiza o treinamento de acordo com X e y, usando o método AIRS.

Parâmetros

NomeTipoPadrãoDescrição
XUnion[npt.NDArray, list]-Amostras de entrada para treinamento. Cada linha corresponde a uma amostra e cada coluna a uma característica.
yUnion[npt.NDArray, list]-Vetor alvo no formato (n_samples,). Deve conter o mesmo número de amostras que X.
verboseboolTrueSe True, exibe informações sobre o progresso do treinamento.

Returns

TipoDescrição
SelfRetorna a instancia da classe.

Exceções

ExceçãoDescrição
TypeErrorSe X ou y não forem arrays ou tiverem tamanhos incompatíveis.

predict

def predict(self, X: Union[npt.NDArray, list]) -> npt.NDArray:
...

Prevê os rótulos dos dados de testes com base nas células de memórias criadas durante o treinamento.

Este método utiliza as células de memórias para classificar os dados de entrada usando a abordagem dos k-vizinhos mais próximos (K-NN).

Parâmetros

NomeTipoPadrãoDescrição
XUnion[npt.NDArray, list]-Amostras de entrada. Deve ter o mesmo número de características usadas no treinamento.

Returns

TipoDescrição
npt.NDArrayArray no formato n_samples contendo as classes previstas para X.

Exceções

ExceçãoDescrição
TypeErrorSe X não for um ndarray ou list.
FeatureDimensionMismatchSe o número de características em X não corresponder ao esperado.
ModelNotFittedErrorSe o modelo ainda não tiver sido treinado e não possuir o conjunto de células de memoria.

Exemplos Estendidos

Exemplos completos de uso estão disponíveis nos notebooks Jupyter:


Referências

Footnotes

  1. Brabazon, A., O'Neill, M., & McGarraghy, S. (2015). Natural Computing Algorithms. In Natural Computing Series. Springer Berlin Heidelberg. https://doi.org/10.1007/978-3-662-43631-8 2

  2. AZZOUG, Aghiles. Artificial Immune Recognition System V2. Available at: https://github.com/AghilesAzzoug/Artificial-Immune-System