ViniciusRaphael / crypto_technical_analysis

This is is a comprehensive resource for enthusiasts, traders, and developers interested in the field of cryptocurrency technical analysis
3 stars 1 forks source link

Implement new Models: XGBoost, SVC and Randon Forest #17

Closed allyssonmacedo closed 4 months ago

allyssonmacedo commented 4 months ago
allyssonmacedo commented 4 months ago

Done. Build one score compound considering all the probability for the targets and with different models

allyssonmacedo commented 4 months ago

O Support Vector Classifier (SVC) é um algoritmo que pode ser computacionalmente caro, especialmente com grandes conjuntos de dados ou quando usa o kernel gaussiano (RBF). Aqui estão algumas maneiras de otimizar o tempo de execução do seu modelo SVC:

  1. Escolher o Kernel Apropriado Linear Kernel: Se o seu conjunto de dados for linearmente separável ou se você tiver um grande número de amostras, usar um kernel linear (kernel='linear') pode ser muito mais rápido do que o kernel RBF. Polinomial ou RBF: Se você precisar usar um kernel não linear, tente diminuir o grau no caso do kernel polinomial (degree) ou ajustar o parâmetro gamma no kernel RBF para ver se uma menor complexidade pode ser adequada.
  2. Ajuste de Parâmetros C (Regularização): O parâmetro C controla o trade-off entre a margem da decisão e a classificação correta das amostras de treinamento. Um valor maior de C pode tornar o modelo mais complexo e demorado. Tente diminuir C para simplificar o modelo. Gamma (no caso de kernel RBF): O parâmetro gamma controla a influência de cada amostra de treinamento. Um valor menor de gamma faz com que o modelo seja mais linear (e possivelmente mais rápido). Valores altos de gamma podem tornar o modelo mais complexo e mais lento.
  3. Subamostragem dos Dados Reduzir o Tamanho do Conjunto de Dados: Se possível, experimente usar um subconjunto menor dos seus dados para treinamento, especialmente ao ajustar os hiperparâmetros. Balanceamento de Classes: Se suas classes estão desbalanceadas, experimente amostrar seus dados de maneira balanceada para reduzir a quantidade de dados processados.
  4. Redução de Dimensionalidade PCA ou TruncatedSVD: Reduzir a dimensionalidade dos dados com técnicas como PCA (Principal Component Analysis) ou TruncatedSVD pode acelerar o treinamento. Selecionar Features Importantes: Usar técnicas de seleção de features para manter apenas as features mais importantes pode reduzir o tempo de treinamento.
  5. Ajustes de Parâmetros de Treinamento max_iter: Defina um número máximo de iterações (max_iter) para impedir que o modelo demore muito em casos de convergência lenta. tol (Tolerância): Ajustar o parâmetro de tolerância (tol) pode acelerar a convergência, embora possa reduzir a precisão.
  6. Utilizar Implementações Otimizadas LinearSVC: Se você está usando o kernel linear, considere usar LinearSVC, que é otimizado para este tipo de problema e geralmente mais rápido. scikit-learn com suporte a paralelismo: Se você tem acesso a múltiplos núcleos de CPU, verifique se o scikit-learn está configurado para utilizá-los.
  7. Pré-processamento dos Dados Normalização ou Padronização: As SVMs são sensíveis à escala dos dados, então normalize ou padronize os dados antes de usá-los.