Chất lượng dữ liệu trong Machine Learning là gì?

Chất lượng dữ liệu trong Machine Learning là gì?

Nút nguồn: 1913587

f Các mô hình ML. Nó cũng sẽ đi sâu vào các kỹ thuật ống ETL được sử dụng để làm sạch dữ liệu, tiền xử lý và kỹ thuật tính năng. Đến cuối bài viết này, bạn sẽ hiểu rõ về tầm quan trọng của chất lượng dữ liệu trong ML và các kỹ thuật được sử dụng để đảm bảo dữ liệu có chất lượng cao. Điều này sẽ giúp triển khai các kỹ thuật này trong các dự án trong thế giới thực và cải thiện hiệu suất của các mô hình ML của họ.

Mục tiêu học tập

  1. Hiểu những điều cơ bản về học máy và các ứng dụng khác nhau của nó.
  2. Nhận thức được tầm quan trọng của chất lượng dữ liệu trong sự thành công của các mô hình học máy.
  3. Làm quen với đường dẫn ETL và vai trò của nó trong việc đảm bảo chất lượng dữ liệu.
  4. Học nhiều kỹ thuật để làm sạch dữ liệu, bao gồm xử lý dữ liệu bị thiếu và trùng lặp, giá trị ngoại lệ và nhiễu cũng như các biến phân loại.
  5. Hiểu tầm quan trọng của tiền xử lý dữ liệu và kỹ thuật tính năng trong việc cải thiện chất lượng dữ liệu được sử dụng trong các mô hình ML.
  6. Kinh nghiệm thực tế trong việc triển khai toàn bộ đường dẫn ETL bằng cách sử dụng mã, bao gồm trích xuất, chuyển đổi và tải dữ liệu.
  7. Làm quen với việc chèn dữ liệu và cách nó có thể ảnh hưởng đến hiệu suất của các mô hình ML.
  8. Hiểu khái niệm và tầm quan trọng của kỹ thuật tính năng trong học máy.

Bài báo này đã được xuất bản như một phần của Blogathon Khoa học Dữ liệu.

Mục lục

  1. Giới thiệu
  2. Học máy là gì?
  3. Tại sao dữ liệu lại quan trọng trong Học máy?
  4. Thu thập dữ liệu thông qua đường ống ETL?
  5. Tiêm dữ liệu là gì?
  6. Tầm quan trọng của việc làm sạch dữ liệu
  7. Tiền xử lý dữ liệu là gì?
  8. Đi sâu vào Kỹ thuật tính năng
  9. Mã hoàn chỉnh cho ETL-Pipeline
  10. Kết luận

Học máy là gì?

Học máy là một dạng trí tuệ nhân tạo cho phép máy tính học hỏi và cải thiện dựa trên kinh nghiệm mà không cần lập trình rõ ràng. Nó đóng một vai trò quan trọng trong việc đưa ra dự đoán, xác định các mẫu trong dữ liệu và đưa ra quyết định mà không cần sự can thiệp của con người. Điều này dẫn đến một hệ thống chính xác và hiệu quả hơn.

chất lượng dữ liệu

Học máy là một phần thiết yếu trong cuộc sống của chúng ta và được sử dụng trong các ứng dụng từ trợ lý ảo đến ô tô tự lái, chăm sóc sức khỏe, tài chính, giao thông vận tải và thương mại điện tử.

Dữ liệu, đặc biệt là học máy, là một trong những thành phần quan trọng của bất kỳ mô hình nào. Nó luôn phụ thuộc vào chất lượng của dữ liệu bạn cung cấp cho mô hình của mình. Hãy xem tại sao dữ liệu lại rất cần thiết cho máy học.

Tại sao dữ liệu quan trọng trong học máy?

Chúng tôi được bao quanh bởi rất nhiều thông tin mỗi ngày. Những gã khổng lồ công nghệ như Amazon, Facebook và Google thu thập lượng dữ liệu khổng lồ hàng ngày. Nhưng tại sao họ lại thu thập dữ liệu? Bạn đã đúng nếu bạn đã thấy Amazon và Google xác nhận các sản phẩm mà bạn đang tìm kiếm.

Cuối cùng, dữ liệu từ các kỹ thuật học máy đóng một vai trò thiết yếu trong việc triển khai mô hình này. Nói tóm lại, dữ liệu là nhiên liệu thúc đẩy quá trình học máy và tính khả dụng của dữ liệu chất lượng cao là rất quan trọng để tạo ra các mô hình chính xác và đáng tin cậy. Nhiều loại dữ liệu được sử dụng trong học máy, bao gồm dữ liệu phân loại, số, chuỗi thời gian và dữ liệu văn bản. Dữ liệu được thu thập thông qua một đường ống ETL. Đường ống ETL là gì?

Thu thập dữ liệu thông qua đường ống ETL

Chuẩn bị dữ liệu cho máy học thường được gọi là đường dẫn ETL để trích xuất, chuyển đổi và tải.

  • Khai thác: Bước đầu tiên trong quy trình ETL là trích xuất dữ liệu từ nhiều nguồn khác nhau. Nó có thể bao gồm trích xuất dữ liệu từ cơ sở dữ liệu, API hoặc tệp đơn giản như CSV hoặc Excel. Dữ liệu có thể được cấu trúc hoặc không cấu trúc.

Dưới đây là ví dụ về cách chúng tôi trích xuất dữ liệu từ tệp CSV.

Mã Python:

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)
  • Chuyển đổi: Đó là quá trình biến đổi dữ liệu để làm cho nó phù hợp để sử dụng trong các mô hình học máy. Điều này có thể bao gồm làm sạch dữ liệu để loại bỏ lỗi hoặc sự không nhất quán, chuẩn hóa dữ liệu và chuyển đổi dữ liệu sang định dạng mà mô hình có thể sử dụng. Bước này cũng bao gồm kỹ thuật tính năng, trong đó dữ liệu thô được chuyển đổi thành một tập hợp các tính năng được sử dụng làm đầu vào cho mô hình.
  • Đây là một mã đơn giản để chuyển đổi dữ liệu từ json sang 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)
  • Phụ tải: Bước cuối cùng là tải lên hoặc tải dữ liệu đã chuyển đổi đến đích. Nó có thể là cơ sở dữ liệu, kho lưu trữ dữ liệu hoặc hệ thống tệp. Dữ liệu kết quả đã sẵn sàng để sử dụng tiếp, chẳng hạn như đào tạo hoặc thử nghiệm các mô hình máy học.

Đây là một mã đơn giản cho biết cách chúng tôi tải dữ liệu bằng gấu trúc:

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

Sau khi thu thập dữ liệu, chúng tôi thường sử dụng tính năng chèn dữ liệu nếu chúng tôi tìm thấy bất kỳ giá trị nào bị thiếu.

Tiêm dữ liệu là gì?

Việc thêm dữ liệu mới vào máy chủ dữ liệu hiện có có thể được thực hiện vì nhiều lý do để cập nhật cơ sở dữ liệu với dữ liệu mới và thêm dữ liệu đa dạng hơn để cải thiện hiệu suất của các mô hình máy học. Hoặc việc sửa lỗi của tập dữ liệu gốc thường được thực hiện bằng tự động hóa với một số công cụ tiện dụng.

làm sạch dữ liệu

Có ba loại.

  • Chèn hàng loạt: Dữ liệu được chèn hàng loạt, thường vào một thời điểm cố định
  • Tiêm thời gian thực: Dữ liệu được đưa vào ngay lập tức khi nó được tạo.
  • Tiêm luồng: Dữ liệu được đưa vào trong một luồng liên tục. Nó thường được sử dụng trong thời gian thực.

Dưới đây là một ví dụ mã về cách chúng tôi chèn dữ liệu bằng chức năng nối thêm bằng thư viện gấu trúc.

Giai đoạn tiếp theo của đường ống dữ liệu là làm sạch dữ liệu.

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)

Tầm quan trọng của việc làm sạch dữ liệu

Làm sạch dữ liệu là loại bỏ hoặc sửa lỗi trong dữ liệu. Điều này có thể bao gồm việc xóa các giá trị bị thiếu và trùng lặp cũng như quản lý các giá trị ngoại lệ. Làm sạch dữ liệu là một quá trình lặp đi lặp lại và những thông tin chi tiết mới có thể yêu cầu bạn quay lại và thực hiện các thay đổi. Trong Python, thư viện pandas thường được sử dụng để làm sạch dữ liệu.

Có những lý do quan trọng để làm sạch dữ liệu.

  • Chất lượng dữ liệu: Chất lượng dữ liệu là rất quan trọng để phân tích chính xác và đáng tin cậy. Thông tin chính xác và nhất quán hơn có thể dẫn đến kết quả thực tế và đưa ra quyết định tốt hơn.
  • Hiệu suất học máy: Dữ liệu bẩn có thể ảnh hưởng tiêu cực đến hiệu suất của các mô hình máy học. Làm sạch dữ liệu của bạn cải thiện độ chính xác và độ tin cậy của mô hình của bạn.
  • Lưu trữ và truy xuất dữ liệu: Dữ liệu sạch sẽ dễ lưu trữ và truy xuất hơn, đồng thời giảm rủi ro về lỗi và sự không nhất quán trong quá trình lưu trữ và truy xuất dữ liệu.
  • Quản trị dữ liệu: Làm sạch dữ liệu là rất quan trọng để đảm bảo tính toàn vẹn của dữ liệu và tuân thủ các chính sách và quy định quản lý dữ liệu.
  • lưu trữ dữ liệu: Xóa sạch dữ liệu giúp lưu dữ liệu để sử dụng và phân tích lâu dài.

Đây là mã cho biết cách loại bỏ các giá trị bị thiếu và loại bỏ các giá trị trùng lặp bằng thư viện gấu trúc:

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

Đây là một ví dụ khác về cách chúng tôi làm sạch dữ liệu bằng cách sử dụng các kỹ thuật khác nhau

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)

Giai đoạn thứ ba của đường dẫn dữ liệu là tiền xử lý dữ liệu,

Bạn cũng nên hiểu rõ dữ liệu và các tính năng trước khi áp dụng bất kỳ phương pháp làm sạch nào và kiểm tra hiệu suất của mô hình sau khi làm sạch dữ liệu.

Tiền xử lý dữ liệu là gì?

Xử lý dữ liệu đang chuẩn bị dữ liệu để sử dụng trong các mô hình máy học. Đây là một bước thiết yếu trong học máy vì nó đảm bảo rằng dữ liệu ở định dạng mà mô hình có thể sử dụng và mọi lỗi hoặc sự không nhất quán đều được giải quyết.

tích hợp r tableau và excel

Xử lý dữ liệu thường bao gồm sự kết hợp giữa làm sạch dữ liệu, chuyển đổi dữ liệu và chuẩn hóa dữ liệu. Các bước cụ thể trong quá trình xử lý dữ liệu tùy thuộc vào loại dữ liệu và mô hình máy học bạn đang sử dụng. Tuy nhiên, đây là một số bước chung:

  • Dọn dẹp dữ liệu: Xóa lỗi, sự không nhất quán và giá trị ngoại lệ khỏi cơ sở dữ liệu.
  • Chuyển đổi dữ liệu: Chuyển đổi dữ liệu thành một dạng mà các mô hình máy học có thể sử dụng, chẳng hạn như thay đổi biến phân loại thành biến số.
  • Ngày Bình thường hóa: Chia tỷ lệ dữ liệu trong một phạm vi cụ thể từ 0 đến 1, giúp cải thiện hiệu suất của một số mô hình máy học.
  • Thêm dữ liệu: Thêm các thay đổi hoặc thao tác vào các điểm dữ liệu hiện có để tạo các điểm mới.
  • Lựa chọn hoặc trích xuất tính năng: Xác định và chọn các tính năng cần thiết từ dữ liệu của bạn để sử dụng làm đầu vào cho mô hình máy học của bạn.
  • Phát hiện ngoại vi: Xác định và loại bỏ các điểm dữ liệu sai lệch đáng kể so với lượng lớn dữ liệu. Các ngoại lệ có thể thay đổi kết quả phân tích và ảnh hưởng xấu đến hiệu suất của các mô hình máy học.
  • Phát hiện trùng lặp: Xác định và loại bỏ các điểm dữ liệu trùng lặp. Dữ liệu trùng lặp có thể dẫn đến kết quả không chính xác hoặc không đáng tin cậy, đồng thời làm tăng kích thước tập dữ liệu của bạn, gây khó khăn cho việc xử lý và phân tích.
  • Xác định xu hướng: Tìm các mẫu và xu hướng trong dữ liệu của bạn mà bạn có thể sử dụng để đưa ra các dự đoán trong tương lai hoặc hiểu rõ hơn về bản chất của dữ liệu.

Xử lý dữ liệu là điều cần thiết trong học máy vì nó đảm bảo rằng dữ liệu ở dạng mà mô hình có thể sử dụng và mọi lỗi hoặc sự không nhất quán đều bị loại bỏ. Điều này cải thiện hiệu suất của mô hình và độ chính xác của dự đoán.

Đây là một số mã đơn giản cho biết cách sử dụng lớp LabelEncoder để chia tỷ lệ các biến phân loại thành các giá trị số và lớp MinMaxScaler để chia tỷ lệ các biến số.

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)

Giai đoạn cuối cùng của đường dẫn dữ liệu là kỹ thuật tính năng,

Đi sâu vào Kỹ thuật tính năng

Kỹ thuật tính năng biến dữ liệu thô thành các tính năng có thể được sử dụng làm đầu vào cho mô hình học máy. Điều này liên quan đến việc xác định và trích xuất dữ liệu quan trọng nhất từ ​​nguyên liệu thô và chuyển đổi nó thành định dạng mà mô hình có thể sử dụng. Kỹ thuật tính năng là điều cần thiết trong học máy vì nó có thể tác động đáng kể đến hiệu suất của mô hình.

Các kỹ thuật khác nhau có thể được sử dụng cho kỹ thuật tính năng là:

  • Đặc tính Khai thác: Trích xuất thông tin liên quan từ dữ liệu thô. Ví dụ: xác định các tính năng quan trọng nhất hoặc kết hợp các tính năng hiện có để tạo các tính năng mới.
  • Sửa đổi thuộc tính: Thay đổi loại thuộc tính, chẳng hạn như thay đổi biến phân loại thành biến số hoặc thu phóng dữ liệu để vừa với một phạm vi cụ thể.
  • Lựa chọn tính năng: Xác định các tính năng thiết yếu của dữ liệu để sử dụng làm đầu vào cho mô hình máy học của bạn.
  • Giảm thứ nguyên: Giảm số lượng các tính năng trong cơ sở dữ liệu bằng cách loại bỏ các tính năng dư thừa hoặc không liên quan.
  • Thêm dữ liệu: Thêm các thay đổi hoặc thao tác vào các điểm dữ liệu hiện có để tạo các điểm mới.

Kỹ thuật tính năng yêu cầu hiểu rõ về dữ liệu của bạn, vấn đề cần giải quyết và các thuật toán máy học sẽ sử dụng. Quá trình này lặp đi lặp lại và mang tính thử nghiệm, đồng thời có thể yêu cầu lặp lại nhiều lần để tìm ra bộ tính năng tối ưu giúp cải thiện hiệu suất của mô hình của chúng tôi.

Mã hoàn chỉnh cho toàn bộ đường ống ETL

Dưới đây là một ví dụ về một đường dẫn ETL hoàn chỉnh bằng cách sử dụng các thư viện pandas và scikit-learning:

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)

Đầu tiên, dữ liệu được truy xuất từ ​​tệp CSV bằng cách sử dụng hàm pandas read_csv() của ví dụ này. Việc làm sạch dữ liệu sau đó được thực hiện bằng cách loại bỏ các giá trị bị thiếu và trùng lặp. Điều này được thực hiện bằng cách sử dụng LabelEncoder để thay đổi các biến phân loại thành số, OneHotEncoder để chia tỷ lệ các biến phân loại thành số và MinMaxScaler để chia tỷ lệ các biến số. Cuối cùng, dữ liệu đã xóa được đọc vào một tệp CSV mới bằng hàm pandas to_csv().

Lưu ý rằng ví dụ này là một phiên bản rất đơn giản của đường dẫn ETL. Trong một kịch bản thực tế, quy trình có thể phức tạp hơn và liên quan đến nhiều quá trình xử lý và gia công phần mềm bên ngoài, chi phí, v.v. có thể bao gồm các phương pháp như. Ngoài ra, truy xuất nguồn gốc dữ liệu cũng rất cần thiết. Nghĩa là, nó theo dõi nguồn gốc của dữ liệu, các thay đổi của dữ liệu và vị trí của dữ liệu không chỉ giúp bạn hiểu chất lượng dữ liệu của mình mà còn giúp bạn gỡ lỗi và xem xét quy trình của mình. Ngoài ra, điều cần thiết là phải hiểu rõ dữ liệu và các tính năng trước khi áp dụng các phương pháp xử lý hậu kỳ và kiểm tra hiệu suất của mô hình sau khi xử lý trước. Thông tin.

Kết luận

Chất lượng dữ liệu rất quan trọng đối với sự thành công của các mô hình học máy. Bằng cách quan tâm đến từng bước của quy trình, từ thu thập dữ liệu để làm sạch, xử lý và xác thực, bạn có thể đảm bảo rằng dữ liệu của mình có chất lượng cao nhất. Điều này sẽ cho phép mô hình của bạn đưa ra dự đoán chính xác hơn, dẫn đến kết quả tốt hơn và các dự án máy học thành công.

Bây giờ bạn sẽ biết tầm quan trọng của chất lượng dữ liệu trong Học máy. Dưới đây là một số điểm chính trong bài viết của tôi:

Chìa khóa chính

  • Hiểu tác động của chất lượng dữ liệu kém đối với các mô hình học máy và kết quả thu được.
  • Nhận thức được tầm quan trọng của chất lượng dữ liệu trong sự thành công của các mô hình học máy.
  • Làm quen với đường dẫn ETL và vai trò của nó trong việc đảm bảo chất lượng dữ liệu.
  • Có được các kỹ năng làm sạch dữ liệu, tiền xử lý và các kỹ thuật kỹ thuật tính năng để cải thiện chất lượng dữ liệu được sử dụng trong các mô hình ML.
  • Hiểu khái niệm và tầm quan trọng của kỹ thuật tính năng trong học máy.
  • Học các kỹ thuật để chọn, tạo và chuyển đổi các tính năng để cải thiện hiệu suất của các mô hình ML.

Cảm ơn vì đã đọc! Bạn muốn chia sẻ một cái gì đó không được đề cập ở trên? Suy nghĩ? Hãy bình luận dưới đây.

Phương tiện hiển thị trong bài viết này không thuộc sở hữu của Analytics Vidhya và được sử dụng theo quyết định riêng của Tác giả.

Dấu thời gian:

Thêm từ Phân tích Vidhya