Partilhar via


Como usar o Bloco de Anotações do Azure Machine Learning no Spark

Nota

Vamos desativar o Azure HDInsight no AKS em 31 de janeiro de 2025. Antes de 31 de janeiro de 2025, você precisará migrar suas cargas de trabalho para o Microsoft Fabric ou um produto equivalente do Azure para evitar o encerramento abrupto de suas cargas de trabalho. Os clusters restantes na sua subscrição serão interrompidos e removidos do anfitrião.

Apenas o apoio básico estará disponível até à data da reforma.

Importante

Esta funcionalidade está atualmente em pré-visualização. Os Termos de Utilização Suplementares para Pré-visualizações do Microsoft Azure incluem mais termos legais que se aplicam a funcionalidades do Azure que estão em versão beta, em pré-visualização ou ainda não disponibilizadas para disponibilidade geral. Para obter informações sobre essa visualização específica, consulte Informações de visualização do Azure HDInsight no AKS. Para perguntas ou sugestões de recursos, envie uma solicitação no AskHDInsight com os detalhes e siga-nos para obter mais atualizações na Comunidade do Azure HDInsight.

O aprendizado de máquina é uma tecnologia em crescimento, que permite que os computadores aprendam automaticamente com dados passados. O aprendizado de máquina usa vários algoritmos para construir modelos matemáticos e fazer previsões usando dados ou informações históricas. Temos um modelo definido até alguns parâmetros, e aprendizagem é a execução de um programa de computador para otimizar os parâmetros do modelo usando os dados de treinamento ou experiência. O modelo pode ser preditivo para fazer previsões no futuro, ou descritivo para obter conhecimento a partir dos dados.

O bloco de anotações tutorial a seguir mostra um exemplo de treinamento de modelos de aprendizado de máquina em dados tabulares. Você pode importar este bloco de anotações e executá-lo você mesmo.

Carregue o CSV no seu armazenamento

  1. Encontre o nome do armazenamento e do contêiner na visualização JSON do portal

    Captura de tela mostrando o modo de exibição JSON.

  2. Navegue até a pasta> base do contêiner>de armazenamento>HDI principal, carregue o CSV

    Captura de tela mostrando como navegar para armazenamento e contêiner.

    Captura de ecrã a mostrar como carregar o ficheiro CSV.

  3. Faça login no cluster e abra o Jupyter Notebook

    Captura de tela mostrando o Jupyter Notebook.

  4. Importar bibliotecas MLlib do Spark para criar o pipeline

    import pyspark
    from pyspark.ml import Pipeline, PipelineModel
    from pyspark.ml.classification import LogisticRegression
    from pyspark.ml.feature import VectorAssembler, StringIndexer, IndexToString
    

    Captura de tela mostrando como iniciar o aplicativo spark.

  5. Leia o CSV em um dataframe do Spark

    df = spark.read.("abfss:///iris_csv.csv",inferSchema=True,header=True)

  6. Divida os dados para treinamento e teste

    iris_train, iris_test = df.randomSplit([0.7, 0.3], seed=123)

  7. Criar o pipeline e treinar o modelo

    assembler = VectorAssembler(inputCols=['sepallength', 'sepalwidth', 'petallength', 'petalwidth'],outputCol="features",handleInvalid="skip")
    indexer = StringIndexer(inputCol="class", outputCol="classIndex", handleInvalid="skip")
    classifier = LogisticRegression(featuresCol="features",
                                    labelCol="classIndex",
                                    maxIter=10,
                                    regParam=0.01)
    
    pipeline = Pipeline(stages=[assembler,indexer,classifier])
    model = pipeline.fit(iris_train)
    
    # Create a test `dataframe` with predictions from the trained model
    
    test_model = model.transform(iris_test)
    
    # Taking an output from the test dataframe with predictions
    
    test_model.take(1)
    

    Captura de tela mostrando como executar o modelo de teste.

  8. Avaliar a precisão do modelo

    import pyspark.ml.evaluation as ev
    evaluator = ev.MulticlassClassificationEvaluator(labelCol='classIndex')
    
    print(evaluator.evaluate(test_model,{evaluator.metricName: 'accuracy'}))
    

    Captura de tela mostrando como imprimir a saída.