Scikit-learn
SKTet, nome completo scikit-learn, é uma biblioteca de aprendizado de máquina em Python, construída com base em pacotes de ciência de dados como numpy, scipy e matplotlib, cobrindo quase todos os aspectos do aprendizado de máquina, como dados de amostra, pré-processamento de dados, verificação de modelos, seleção de características, classificação, regressão, clustering e redução de dimensionalidade. Diferente do estoque de deep learning disponível em vários frameworks como pytorch e TensorFlow, o sklearn é a biblioteca preferida para aprendizado de máquina tradicional em python, e não há outros concorrentes.
Site Oficial:O login do hiperlink está visível. Fonte:O login do hiperlink está visível.
Extensão para Scikit-learn
Como um framework clássico de aprendizado de máquina, o scikit-learn vem se desenvolvendo há mais de dez anos desde seu nascimento, mas sua velocidade de processamento tem sido amplamente criticada pelos usuários. Extension for Scikit-learn é um acelerador gratuito de software de IA projetado para ajudar vocêO código existente do Scikit-learn oferece acelerações de 10 a 100x mais rápidas。 A aceleração por software é alcançada por meio de instruções vetoriais, otimização de memória para hardware de IA, threading e otimização.
Com a extensão Scikit-learn, você pode:
- Treinamento e inferência são 100 vezes mais rápidos com a mesma precisão matemática
- Beneficie-se de melhorias de desempenho em diferentes configurações de hardware de CPU, incluindo configurações de GPU e multi-GPU
- Integre extensões às suas aplicações Scikit-learn existentes sem modificar o código
- Continue usando a API open-source scikit-learn
- Use algumas linhas de código ou ative e desative extensões na linha de comando
Fonte:O login do hiperlink está visível. Documentação:O login do hiperlink está visível.
Teste
Primeiro, use o conda para preparar o ambiente e instale os pacotes necessários com o seguinte comando:
O novo código de teste em Python é o seguinte:
O código acelerado é o seguinte:
Interpretação do código-fonte:
1.X, y = make_regression(n_samples=2000000, n_features=100, ruído=1, random_state=42) make_regression é uma função no scikit-learn que gera um conjunto de dados para problemas de regressão linear. n_samples=2000000: Especifica o número de amostras no conjunto de dados gerado de 2.000.000. n_features=100: Especifica que cada amostra possui 100 características (ou seja, variáveis de entrada). ruído=1: O desvio padrão de adicionar ruído ao valor alvo y é 1. Isso significa que o valor alvo terá algumas perturbações aleatórias. random_state=42: Defina a semente aleatória para 42, garantindo que os dados gerados sejam os mesmos toda vez que o código é executado (repetibilidade). Resultados: X é um array NumPy de formas (2000000, 100) representando 2.000.000 de amostras com 100 características cada; Y é um arranjo unidimensional de 2.000.000 de comprimento que representa o valor alvo.
2. X_train, _, y_train, _ = train_test_split(X, y, test_size=0,33, random_state=42) train_test_split é uma função no scikit-learn que divide o conjunto de dados em conjuntos de treinamento e de teste. test_size=0,33: Indica que 33% do conjunto de dados é alocado ao conjunto de teste e os 67% restantes são alocados ao conjunto de treinamento. random_state=42: Defina a semente aleatória para 42, garantindo que o resultado da divisão dos dados seja o mesmo toda vez que você executa o código. : Use um sublinhado para ignorar o valor de retorno. Aqui só nos importamos com a parte do conjunto de treinamento (X_train e y_train) e ignoramos a parte do conjunto de teste. Resultado: X_train: A matriz de características do conjunto de treinamento, com formato de (1340000, 100) (cerca de 67% dos dados). y_train: O valor-alvo do conjunto de treinamento com duração de 1.340.000.
3. modelo = Regressão Linear() LinearRegression é uma disciplina do scikit-learn que implementa modelos de regressão linear. Essa linha de código cria uma instância de um modelo de regressão linear e atribui valores ao modelo de variáveis. Por padrão, a Regressão Linear não regulariza os dados (ou seja, não há regularização L1 ou L2).
4. model.fit(X_train, y_train) Ajuste é um método no modelo scikit-learn que é usado para treinar o modelo. Aqui, o método de ajuste é chamado para ajustar o modelo de regressão linear usando o conjunto de treinamento X_train e o valor-alvo y_train. O modelo calcula um conjunto ótimo de pesos (coeficientes) e interceptos para minimizar o erro entre os valores previstos e verdadeiros (geralmente mínimos quadrados). Uma vez concluído o treinamento, os parâmetros do modelo são armazenados em model.coef_ (o peso da característica) e model.intercept_ (interceptação).
O tempo de execução é o seguinte:
Você pode ver que o efeito é muito óbvio tanto sem aceleração quanto após a aceleração,Leva cerca de 16 segundos sem acelerar e apenas 0,1 segundo após a aceleração!!!! |