기계 학습에서 데이터 품질이란 무엇입니까?

기계 학습에서 데이터 품질이란 무엇입니까?

소스 노드 : 1913587

f ML 모델. 또한 데이터 정리, 사전 처리 및 기능 엔지니어링에 사용되는 ETL 파이프 기술에 대해서도 자세히 설명합니다. 이 기사를 마치면 ML에서 데이터 품질의 중요성과 고품질 데이터를 보장하는 데 사용되는 기술을 확실하게 이해하게 될 것입니다. 이것은 실제 프로젝트에서 이러한 기술을 구현하고 ML 모델의 성능을 향상시키는 데 도움이 될 것입니다.

학습 목표

  1. 기계 학습의 기본과 다양한 응용 프로그램을 이해합니다.
  2. 기계 학습 모델의 성공에서 데이터 품질의 중요성을 인식합니다.
  3. ETL 파이프라인과 데이터 품질을 보장하는 역할에 익숙해집니다.
  4. 누락 및 중복 데이터, 이상값 및 노이즈, 범주형 변수 처리를 포함하여 데이터 정리를 위한 여러 기술을 배웁니다.
  5. ML 모델에 사용되는 데이터의 품질을 개선하는 데 있어 데이터 전처리 및 기능 엔지니어링의 중요성을 이해합니다.
  6. 데이터 추출, 변환 및 로드를 포함하여 코드를 사용하여 전체 ETL 파이프라인을 구현한 실제 경험.
  7. 데이터 주입과 이것이 ML 모델의 성능에 미치는 영향을 숙지합니다.
  8. 기계 학습에서 기능 엔지니어링의 개념과 중요성을 이해합니다.

이 기사는 데이터 과학 Blogathon.

차례

  1. 개요
  2. 머신 러닝이란 무엇입니까?
  3. 기계 학습에서 데이터가 중요한 이유는 무엇입니까?
  4. ETL 파이프라인을 통한 데이터 수집?
  5. 데이터 주입이란 무엇입니까?
  6. 데이터 정리의 중요성
  7. 데이터 전처리란?
  8. 기능 엔지니어링에 대한 다이빙
  9. ETL-파이프라인에 대한 전체 코드
  10. 결론

머신 러닝이란 무엇입니까?

기계 학습은 컴퓨터가 명시적인 프로그래밍 없이 경험을 기반으로 학습하고 개선할 수 있도록 하는 인공 지능의 한 형태입니다. 예측을 하고, 데이터의 패턴을 식별하고, 사람의 개입 없이 의사 결정을 내리는 데 중요한 역할을 합니다. 그 결과 더 정확하고 효율적인 시스템이 만들어집니다.

데이터 품질

기계 학습은 우리 삶의 필수적인 부분이며 가상 비서에서 자율 주행 자동차, 의료, 금융, 운송 및 전자 상거래에 이르기까지 다양한 응용 프로그램에 사용됩니다.

데이터, 특히 기계 학습은 모든 모델의 중요한 구성 요소 중 하나입니다. 항상 모델에 제공하는 데이터의 품질에 따라 달라집니다. 기계 학습에 데이터가 왜 중요한지 살펴보겠습니다.

기계 학습에서 데이터가 중요한 이유는 무엇입니까?

우리는 매일 수많은 정보에 둘러싸여 있습니다. Amazon, Facebook, Google과 같은 거대 기술 기업은 매일 방대한 양의 데이터를 수집합니다. 그런데 왜 그들은 데이터를 수집하고 있습니까? Amazon과 Google이 찾고 있는 제품을 보증하는 것을 본 적이 있다면 맞습니다.

마지막으로 기계 학습 기술의 데이터는 이 모델을 구현하는 데 필수적인 역할을 합니다. 즉, 데이터는 기계 학습을 추진하는 연료이며 고품질 데이터의 가용성은 정확하고 신뢰할 수 있는 모델을 만드는 데 중요합니다. 범주, 숫자, 시계열 및 텍스트 데이터를 포함하여 많은 데이터 유형이 기계 학습에 사용됩니다. 데이터는 ETL 파이프라인을 통해 수집됩니다. ETL 파이프라인이란 무엇입니까?

ETL 파이프라인을 통한 데이터 수집

기계 학습을 위한 데이터 준비는 종종 추출, 변환 및 로드를 위한 ETL 파이프라인이라고 합니다.

  • 추출: ETL 파이프라인의 첫 번째 단계는 다양한 소스에서 데이터를 추출하는 것입니다. 여기에는 데이터베이스, API 또는 CSV나 Excel과 같은 일반 파일에서 데이터를 추출하는 작업이 포함될 수 있습니다. 데이터는 구조화되거나 구조화되지 않을 수 있습니다.

다음은 CSV 파일에서 데이터를 추출하는 방법의 예입니다.

파이썬 코드:

import pandas as pd
#read csv file
df = pd.read_csv("data.csv")
#extract specific data
name = df["name"]
age = df["age"]
address = df["address"]
#print extracted data
print("Name:", name)
print("Age:", age)
print("Address:", address)
  • 변환: 데이터를 기계 학습 모델에 사용하기에 적합하도록 변환하는 과정입니다. 여기에는 오류나 불일치를 제거하기 위한 데이터 정리, 데이터 표준화, 모델에서 사용할 수 있는 형식으로 데이터 변환이 포함될 수 있습니다. 이 단계에는 원시 데이터가 모델의 입력으로 사용되는 일련의 기능으로 변환되는 기능 엔지니어링도 포함됩니다.
  • 이것은 json에서 DataFrame으로 데이터를 변환하기 위한 간단한 코드입니다.
import json
import pandas as pd
#load json file
with open("data.json", "r") as json_file:
data = json.load(json_file)
#convert json data to a DataFrame
df = pd.DataFrame(data)
#write to csv
df.to_csv("data.csv", index=False)
  • 하중: 마지막 단계는 변환된 데이터를 대상에 업로드하거나 로드하는 것입니다. 데이터베이스, 데이터 저장소 또는 파일 시스템일 수 있습니다. 결과 데이터는 기계 학습 모델 교육 또는 테스트와 같은 추가 사용 준비가 되어 있습니다.

다음은 팬더를 사용하여 데이터를 로드하는 방법을 보여주는 간단한 코드입니다.

import pandas as pd
df = pd.read_csv('data.csv')

데이터를 수집한 후 누락된 값이 발견되면 일반적으로 데이터 주입을 사용합니다.

데이터 주입이란 무엇입니까?

기존 데이터 서버에 새로운 데이터를 추가하는 것은 데이터베이스를 새로운 데이터로 업데이트하고 더 다양한 데이터를 추가하여 기계 학습 모델의 성능을 향상시키기 위해 다양한 이유로 수행될 수 있습니다. 또는 원본 데이터 세트의 오류 수정은 일반적으로 몇 가지 편리한 도구를 사용하여 자동화로 수행됩니다.

데이터 청소

세 가지 유형이 있습니다.

  • 배치 삽입: 데이터는 대량으로 삽입되며 일반적으로 고정된 시간에 삽입됩니다.
  • 실시간 주입: 데이터는 생성되는 즉시 주입됩니다.
  • 스트림 주입: 데이터는 연속 스트림으로 주입됩니다. 실시간으로 자주 사용됩니다.

다음은 pandas 라이브러리를 사용하여 추가 기능을 사용하여 데이터를 주입하는 방법에 대한 코드 예제입니다.

데이터 파이프라인의 다음 단계는 데이터 정리입니다.

import pandas as pd # Create an empty DataFrame
df = pd.DataFrame() # Add some data to the DataFrame
df = df.append({'Name': 'John', 'Age': 30, 'Country': 'US'}, ignore_index=True)
df = df.append({'Name': 'Jane', 'Age': 25, 'Country': 'UK'}, ignore_index=True) # Print the DataFrame
print(df)

데이터 정리의 중요성

데이터 정리 데이터의 오류를 제거하거나 수정하는 것입니다. 여기에는 누락된 값과 중복 항목 제거 및 이상값 관리가 포함될 수 있습니다. 데이터 정리는 반복적인 프로세스이며 새로운 통찰력을 얻으려면 돌아가서 변경해야 할 수 있습니다. Python에서 pandas 라이브러리는 종종 데이터를 정리하는 데 사용됩니다.

데이터 정리에는 중요한 이유가 있습니다.

  • 데이터 품질: 정확하고 신뢰할 수 있는 분석을 위해서는 데이터 품질이 중요합니다. 보다 정확하고 일관된 정보는 실제 결과와 더 나은 의사 결정으로 이어질 수 있습니다.
  • 기계 학습의 성능: 더티 데이터는 기계 학습 모델의 성능에 부정적인 영향을 미칠 수 있습니다. 데이터를 정리하면 모델의 정확도와 안정성이 향상됩니다.
  • 데이터 저장 및 검색: 깨끗한 데이터는 저장 및 검색이 더 쉽고 데이터 저장 및 검색의 오류 및 불일치 위험을 줄입니다.
  • 데이터 거버넌스: 데이터 정리는 데이터 무결성과 데이터 규제 정책 및 규정 준수를 보장하는 데 중요합니다.
  • 데이터 저장고: 데이터 삭제는 장기간 사용 및 분석을 위해 데이터를 저장하는 데 도움이 됩니다.

다음은 pandas 라이브러리를 사용하여 누락된 값을 삭제하고 중복을 제거하는 방법을 보여주는 코드입니다.

df = df.dropna()
df = df.drop_duplicates() # Fill missing values
df = df.fillna(value=-1)

다음은 다양한 기술을 사용하여 데이터를 정리하는 방법에 대한 또 다른 예입니다.

import pandas as pd # Create a sample DataFrame
data = {'Name': ['John', 'Jane', 'Mike', 'Sarah', 'NaN'], 'Age': [30, 25, 35, 32, None], 'Country': ['US', 'UK', 'Canada', 'Australia', 'NaN']}
df = pd.DataFrame(data) # Drop missing values
df = df.dropna() # Remove duplicates
df = df.drop_duplicates() # Handle outliers
df = df[df['Age'] < 40] # Print the cleaned DataFrame
print(df)

데이터 파이프라인의 세 번째 단계는 데이터 전처리입니다.

정리 방법을 적용하기 전에 데이터와 특징을 명확하게 이해하고 데이터를 정리한 후 모델의 성능을 테스트하는 것도 좋습니다.

데이터 전처리란?

데이터 처리는 기계 학습 모델에서 사용할 데이터를 준비하는 것입니다. 이는 데이터가 모델이 사용할 수 있는 형식이고 모든 오류나 불일치가 해결되도록 보장하기 때문에 기계 학습의 필수 단계입니다.

r tableau 및 Excel 통합

데이터 처리에는 일반적으로 데이터 정리, 데이터 변환 및 데이터 표준화의 조합이 포함됩니다. 데이터 처리의 특정 단계는 데이터 유형과 사용 중인 기계 학습 모델에 따라 다릅니다. 그러나 다음은 몇 가지 일반적인 단계입니다.

  • 데이터 정리: 데이터베이스에서 오류, 불일치 및 이상값을 제거합니다.
  • 데이터 변환: 범주형 변수를 수치변수로 변경하는 등 머신러닝 모델에서 사용할 수 있는 형태로 데이터 변환
  • Data 표준화: 0과 1 사이의 특정 범위에서 데이터를 확장하여 일부 머신 러닝 모델의 성능을 개선하는 데 도움이 됩니다.
  • 데이터 추가: 기존 데이터 포인트에 변경 또는 조작을 추가하여 새 데이터 포인트를 생성합니다.
  • 기능 선택 또는 추출: 데이터에서 기계 학습 모델에 대한 입력으로 사용할 필수 기능을 식별하고 선택합니다.
  • 이상치 탐지: 많은 양의 데이터에서 크게 벗어나는 데이터 포인트를 식별하고 제거합니다. 이상값은 분석 결과를 변경하고 기계 학습 모델의 성능에 부정적인 영향을 미칠 수 있습니다.
  • 중복 감지: 중복 데이터 포인트를 식별하고 제거합니다. 중복 데이터는 부정확하거나 신뢰할 수 없는 결과를 초래할 수 있으며 데이터 세트의 크기를 증가시켜 처리 및 분석을 어렵게 만듭니다.
  • 추세 파악: 미래 예측을 알리거나 데이터의 특성을 더 잘 이해하는 데 사용할 수 있는 데이터의 패턴과 경향을 찾습니다.

데이터 처리는 데이터가 모델이 사용할 수 있는 형식이고 오류나 불일치가 제거되도록 보장하기 때문에 머신 러닝에서 필수적입니다. 이렇게 하면 모델의 성능과 예측 정확도가 향상됩니다.

다음은 LabelEncoder 클래스를 사용하여 범주형 변수를 숫자 값으로 조정하고 MinMaxScaler 클래스를 사용하여 숫자 변수를 조정하는 방법을 보여주는 간단한 코드입니다.

import pandas as pd
from sklearn.preprocessing import MinMaxScaler, StandardScaler, OneHotEncoder, LabelEncoder # Create a sample DataFrame
data = {'Name': ['John', 'Jane', 'Mike', 'Sarah'], 'Age': [30, 25, 35, 32], 'Country': ['US', 'UK', 'Canada', 'Australia'], 'Gender':['M','F','M','F']}
df = pd.DataFrame(data) # Convert categorical variables to numerical
encoder = LabelEncoder()
df["Gender"] = encoder.fit_transform(df["Gender"]) # One hot encoding
onehot_encoder = OneHotEncoder()
country_encoded = onehot_encoder.fit_transform(df[['Country']])
df = pd.concat([df, pd.DataFrame(country_encoded.toarray())], axis=1)
df = df.drop(['Country'], axis=1) # Scale numerical variables
scaler = MinMaxScaler()
df[['Age']] = scaler.fit_transform(df[['Age']]) # Print the preprocessed DataFrame
print(df)

데이터 파이프라인의 마지막 단계는 기능 엔지니어링입니다.

기능 엔지니어링에 대한 다이빙

기능 엔지니어링 원시 데이터를 입력으로 사용할 수 있는 기능으로 변환합니다. 기계 학습 모델. 여기에는 원시 자료에서 가장 중요한 데이터를 식별 및 추출하고 모델에서 사용할 수 있는 형식으로 변환하는 작업이 포함됩니다. 기능 엔지니어링은 모델 성능에 상당한 영향을 미칠 수 있기 때문에 머신 러닝에서 필수적입니다.

기능 엔지니어링에 사용할 수 있는 다양한 기술은 다음과 같습니다.

  • 특색 추출: 원시 데이터에서 관련 정보를 추출합니다. 예를 들어 가장 중요한 기능을 식별하거나 기존 기능을 결합하여 새 기능을 만듭니다.
  • 속성 수정: 범주형 변수를 숫자 변수로 변경하거나 특정 범위에 맞게 데이터를 확대/축소하는 등 속성 유형을 변경합니다.
  • 기능 선택: 기계 학습 모델에 대한 입력으로 사용할 데이터의 필수 기능을 결정합니다.
  • 치수 감소: 중복되거나 관련 없는 기능을 제거하여 데이터베이스의 기능 수를 줄입니다.
  • 데이터 추가: 기존 데이터 포인트에 변경 또는 조작을 추가하여 새 데이터 포인트를 생성합니다.

기능 엔지니어링에는 데이터, 해결해야 할 문제 및 사용할 기계 학습 알고리즘에 대한 충분한 이해가 필요합니다. 이 프로세스는 반복적이고 실험적이며 모델의 성능을 향상시키는 최적의 기능 세트를 찾기 위해 여러 번 반복해야 할 수 있습니다.

전체 ETL 파이프라인을 위한 완전한 코드

다음은 pandas 및 scikit-learn 라이브러리를 사용하는 전체 ETL 파이프라인의 예입니다.

import pandas as pd
from sklearn.preprocessing import MinMaxScaler, StandardScaler, OneHotEncoder, LabelEncoder # Extract data from CSV file
df = pd.read_csv('data.csv') # Data cleaning
df = df.dropna()
df = df.drop_duplicates() # Data transformation
encoder = LabelEncoder()
df["Gender"] = encoder.fit_transform(df["Gender"]) onehot_encoder = OneHotEncoder()
country_encoded = onehot_encoder.fit_transform(df[['Country']])
df = pd.concat([df, pd.DataFrame(country_encoded.toarray())], axis=1)
df = df.drop(['Country'], axis=1) scaler = MinMaxScaler()
df[['Age']] = scaler.fit_transform(df[['Age']]) # Load data into a new CSV file
df.to_csv('cleaned_data.csv', index=False)

데이터는 먼저 이 예제의 pandas read_csv() 함수를 사용하여 CSV 파일에서 검색됩니다. 그런 다음 누락된 값과 중복 항목을 제거하여 데이터 정리를 수행합니다. 이것은 LabelEncoder를 사용하여 범주형 변수를 숫자로 변경하고 OneHotEncoder를 사용하여 범주형 변수를 숫자로 조정하고 MinMaxScaler를 사용하여 숫자 변수를 조정합니다. 마지막으로 pandas to_csv() 함수를 사용하여 삭제된 데이터를 새 CSV 파일로 읽습니다.

이 예제는 ETL 파이프라인의 매우 단순화된 버전입니다. 실제 시나리오에서 파이프라인은 더 복잡할 수 있으며 더 많은 처리 및 아웃소싱, 비용 계산 등과 같은 방법을 포함할 수 있습니다. 또한 데이터 추적성도 필수적입니다. 즉, 데이터의 출처, 변경 사항, 데이터의 품질을 이해하는 데 도움이 될 뿐만 아니라 파이프라인을 디버깅하고 검토하는 데 도움이 되는 위치를 추적합니다. 또한 후처리 방법을 적용하기 전에 데이터와 특징을 명확하게 이해하고 전처리 후 모델의 성능을 확인하는 것이 필수적입니다. 정보.

결론

데이터 품질은 기계 학습 모델의 성공에 매우 중요합니다. 프로세스의 모든 단계를 돌봄으로써, 데이터 수집 정리, 처리 및 검증에 이르기까지 데이터의 최고 품질을 보장할 수 있습니다. 이렇게 하면 모델이 더 정확한 예측을 하여 더 나은 결과와 성공적인 기계 학습 프로젝트로 이어질 수 있습니다.

이제 기계 학습에서 데이터 품질의 중요성을 알게 될 것입니다. 다음은 내 기사의 주요 테이크 아웃 중 일부입니다.

주요 요점

  • 열악한 데이터 품질이 기계 학습 모델에 미치는 영향과 그 결과를 이해합니다.
  • 기계 학습 모델의 성공에서 데이터 품질의 중요성을 인식합니다.
  • ETL 파이프라인과 데이터 품질을 보장하는 역할에 대해 숙지합니다.
  • ML 모델에 사용되는 데이터의 품질을 개선하기 위한 데이터 정리, 전처리 및 기능 엔지니어링 기술을 습득합니다.
  • 기계 학습에서 기능 엔지니어링의 개념과 중요성을 이해합니다.
  • ML 모델의 성능을 개선하기 위해 기능을 선택, 생성 및 변환하는 학습 기술입니다.

읽어 주셔서 감사합니다! 위에 언급되지 않은 것을 공유하고 싶습니까? 생각? 아래에 자유롭게 의견을 말하십시오.

이 기사에 표시된 미디어는 Analytics Vidhya의 소유가 아니며 작성자의 재량에 따라 사용됩니다.

타임 스탬프 :

더보기 분석 Vidhya