Pandas DataFrames를 Azure Datasets로 변환

기계 학습을 수행하기 전에 Python에서 Pandas DataFrames을 사용하여 데이터를 자주 정리하여 데이터를 더 유용한 형식으로 필터링, 정리, 정렬 및 집계합니다.

그러나 저처럼 Azure ML Python SDK를 사용하여 데이터 과학 작업을 보강하려는 경우 Pandas DataFrame을 Azure Machine Learning Studio 데이터 세트로 변환해야 합니다.

고맙게도 이 프로세스는 Azure ML Python SDK를 사용하여 쉽고 되돌릴 수 있습니다.

데이터세트란 무엇입니까?



Azure Machine Learning은 클라우드 기반 기계 학습을 실행하기 위해 등록된Datasets에 의존합니다. 이러한 사용자 지정 데이터 세트는 실제로 Blob 저장소 또는 다른 호환 데이터 저장소에 있는 파일 기반 또는 테이블 형식 데이터에 대한 포인터일 뿐이며 자동화된 ML, 디자이너 또는 Azure ML Python SDK를 사용하는 사용자 지정 Python 스크립트의 리소스로 사용됩니다.

그러나 모든 기계 학습에 데이터 세트를 사용할 필요는 없습니다. Azure ML Python SDK 및 로컬 컴퓨팅 리소스를 사용하여 Azure 외부에서 기계 학습 모델을 교육한 다음 해당 모델을 Azure 기계 학습에 등록하거나 배포하는 것은 전적으로 가능합니다. 그러나 Azure에서 전체 기능을 경험하려면 데이터 원본을 Azure Datasets로 등록해야 합니다.

DataFrame에서 Azure DataSet으로 변환



다음과 같은 간단한 데이터가 포함된 기존 Pandas DataFrame이 있다고 가정해 보겠습니다.

import pandas as pd

product_price_data = [['Transparent Aluminum', 5.99], ['Unobtanium', 9.88], ['Azurite', 12.35]]

df = pd.DataFrame(product_price_data, columns=['Name', 'Price'])


결과 DataFrame은 다음과 같습니다.



이것은 훌륭합니다! Pandas를 사용하여 열을 추가 및 제거하고, 데이터를 필터링 및 정렬하고, 일반적으로 정리 목적으로 필요한 모든 강력한 작업을 수행할 수 있습니다.

그러나 이 Pandas DataFrame을 Azure에 제출하여 DataSet으로 변환하기 전에 기계 학습 실험을 시작할 수 없습니다.

이에 대한 프로세스는 매우 간단합니다.
  • Azure 기계 학습 작업 영역에 연결
  • 데이터를 업로드할 데이터 저장소 가져오기
  • DataFrame을 표 형식 데이터 세트로 등록

  • connecting to an Azure Machine Learning Workspace 프로세스를 자세히 설명하는 작은 기사가 있지만 일반적으로 이 프로세스는 작업 공간의 Workspace.from_config()와 쌍을 이루는 config.json 방법을 통해 수행됩니다.

    작업 영역이 있으면 연결된 Blob 스토리지를 가져오는 프로세스가 간단합니다. datastore = ws.get_default_datastore()
    마지막으로 데이터 프레임, 대상 데이터 저장소 및 새 데이터 저장소의 이름을 사용하여 Dataset.Tabular.register_pandas_dataframe를 호출합니다.

    전반적으로 이 프로세스의 코드는 다음과 같습니다.

    from azureml.core import Workspace, Dataset
    import pandas as pd
    
    # Connect to the Workspace
    ws = Workspace.from_config()
    
    # The default datastore is a blob storage container where datasets are stored
    datastore = ws.get_default_datastore()
    
    # Register the dataset
    ds = Dataset.Tabular.register_pandas_dataframe(
            dataframe=df, 
            name='NHL-Penalties-2020', 
            description='A breakdown of penalty minutes per game matchup',
            target=datastore
        )
    
    # Display information about the dataset
    print(ds.name + " v" + str(ds.version) + ' (ID: ' + ds.id + ")")
    


    여기서 한 가지 흥미로운 점은 작업 영역에 이미 동일한 이름의 데이터 세트가 있는 경우 데이터 세트가 해당 데이터 세트의 새 버전으로 업로드된다는 것입니다. 이제 비교 목적으로 데이터의 이전 버전에 액세스할 수 있으므로 시간이 지남에 따라 데이터 세트를 조정하는 경우에 유용합니다.
    register_pandas_dataframe 호출이 완료되면 이제 데이터 세트가 Azure Machine Learning Studio에 표시되고 SDK를 통해서도 검색할 수 있습니다.



    DataSet에서 DataFrame으로 변환



    드물게 데이터 세트에서 Pandas DataFrame으로 다시 변환하려는 경우 다음 코드를 통해 수행할 수 있습니다.

    from azureml.core import Workspace, Dataset
    import pandas as pd
    
    # Connect to the Workspace
    ws = Workspace.from_config()
    
    # Retrieve the dataset from Azure by its name
    ds = Dataset.get_by_name(workspace=ws, name='NHL-Penalties-2020')
    
    # Convert to a Pandas DataFrame
    df = ds.to_pandas_dataframe()
    


    이제 이 작업을 수행하는 것이 언제 도움이 될지 확신할 수 없지만 이 작업을 수행할 수 있고 Azure에서 데이터를 데이터 세트로 변환하는 것이 단방향 프로세스가 아니라는 확신을 가질 수 있습니다.

    결론



    Pandas DataFrames는 순수 SQL 작업 외부에서 데이터를 조작하는 보다 강력한 방법 중 하나이며 데이터 과학 및 데이터 분석 워크플로우의 자연스러운 일부가 될 수 있습니다. 결과적으로 Azure에서 Pandas DataFrame을 쉽게 등록하는 기능은 많은 데이터 과학자를 위한 Azure Machine Learning 워크플로의 핵심 부분입니다.

    이 기사가 데이터 과학 여정에 도움이 되었기를 바랍니다. 다음에 다루고 싶은 내용을 알려주세요!

    좋은 웹페이지 즐겨찾기