Nhiều năm trước, khi Spotify đang làm việc trên công cụ đề xuất của mình, họ đã phải đối mặt với những thách thức liên quan đến chất lượng dữ liệu được sử dụng để đào tạo các thuật toán ML.
Nếu họ không quyết định quay lại giai đoạn chuẩn bị dữ liệu và đầu tư thêm nỗ lực vào việc làm sạch, chuẩn hóa và chuyển đổi dữ liệu của họ, thì rất có thể trải nghiệm nghe của chúng tôi sẽ không thú vị bằng.
Việc chuẩn bị kỹ lưỡng dữ liệu cho máy học đã cho phép nền tảng phát trực tuyến đào tạo một công cụ ML mạnh mẽ để dự đoán chính xác sở thích nghe của người dùng và đưa ra các đề xuất âm nhạc được cá nhân hóa cao.
Spotify đã tránh được một sai lầm nghiêm trọng mà các công ty mắc phải khi chuẩn bị dữ liệu cho máy học — không đầu tư đủ nỗ lực hoặc bỏ qua bất kỳ giai đoạn nào.
Nhiều doanh nghiệp cho rằng việc cung cấp khối lượng lớn dữ liệu vào công cụ ML là đủ để tạo ra các dự đoán chính xác. Sự thật là nó có thể dẫn đến một số vấn đề, chẳng hạn như sai lệch thuật toán hoặc khả năng mở rộng hạn chế.
Sự thành công của học máy phụ thuộc rất nhiều vào dữ liệu.
Và điều đáng buồn là: tất cả các bộ dữ liệu đều có sai sót. Đó là lý do tại sao việc chuẩn bị dữ liệu là rất quan trọng đối với học máy. Nó giúp loại trừ những điểm không chính xác và sai lệch vốn có trong dữ liệu thô, để mô hình ML thu được tạo ra các dự đoán chính xác và đáng tin cậy hơn.
Trong bài đăng trên blog này, chúng tôi nhấn mạnh tầm quan trọng của việc chuẩn bị dữ liệu cho máy học và chia sẻ phương pháp thu thập, làm sạch và chuyển đổi dữ liệu của chúng tôi. Vì vậy, nếu bạn chưa quen với ML và muốn đảm bảo sáng kiến của mình thành công, hãy tiếp tục đọc.
Bước đầu tiên để áp dụng thành công ML là hình thành rõ ràng vấn đề kinh doanh của bạn. Nó không chỉ đảm bảo rằng mô hình ML mà bạn đang xây dựng phù hợp với nhu cầu kinh doanh của bạn mà còn cho phép bạn tiết kiệm thời gian và tiền bạc cho việc chuẩn bị dữ liệu có thể không liên quan.
Ngoài ra, một tuyên bố vấn đề rõ ràng làm cho mô hình ML có thể giải thích được (có nghĩa là người dùng hiểu cách nó đưa ra quyết định). Nó đặc biệt quan trọng trong các lĩnh vực như chăm sóc sức khỏe và tài chính, nơi máy học có tác động lớn đến cuộc sống của mọi người.
Khi vấn đề kinh doanh được khắc phục, đã đến lúc bắt đầu công việc dữ liệu.
Nhìn chung, quá trình chuẩn bị dữ liệu cho máy học có thể được chia thành các giai đoạn sau:
Chúng ta hãy xem xét kỹ hơn từng cái.
Chuẩn bị dữ liệu cho học máy bắt đầu bằng việc thu thập dữ liệu. Trong giai đoạn thu thập dữ liệu, bạn thu thập dữ liệu để đào tạo và điều chỉnh mô hình ML trong tương lai. Khi làm như vậy, hãy ghi nhớ loại, khối lượng và chất lượng dữ liệu : những yếu tố này sẽ xác định chiến lược chuẩn bị dữ liệu tốt nhất.
Học máy sử dụng ba loại dữ liệu: có cấu trúc, không cấu trúc và bán cấu trúc.
Cấu trúc của dữ liệu xác định cách tiếp cận tối ưu để chuẩn bị dữ liệu cho máy học. Ví dụ, dữ liệu có cấu trúc có thể dễ dàng được sắp xếp thành các bảng và được làm sạch thông qua tính năng chống trùng lặp, điền vào các giá trị còn thiếu hoặc chuẩn hóa định dạng dữ liệu.
Ngược lại, việc trích xuất các tính năng có liên quan từ dữ liệu phi cấu trúc đòi hỏi các kỹ thuật phức tạp hơn, chẳng hạn như xử lý ngôn ngữ tự nhiên hoặc thị giác máy tính .
Cách tiếp cận tối ưu để chuẩn bị dữ liệu cho máy học cũng bị ảnh hưởng bởi khối lượng dữ liệu đào tạo. Một tập dữ liệu lớn có thể yêu cầu lấy mẫu, bao gồm việc chọn một tập hợp con dữ liệu để huấn luyện mô hình do các giới hạn tính toán. Đổi lại, một quy mô nhỏ hơn có thể yêu cầu các nhà khoa học dữ liệu thực hiện các bước bổ sung để tạo thêm dữ liệu dựa trên các điểm dữ liệu hiện có (thêm về điều đó bên dưới.)
Chất lượng của dữ liệu được thu thập cũng rất quan trọng. Việc sử dụng dữ liệu không chính xác hoặc sai lệch có thể ảnh hưởng đến đầu ra ML, điều này có thể gây ra những hậu quả nghiêm trọng, đặc biệt là trong các lĩnh vực như tài chính, chăm sóc sức khỏe và tư pháp hình sự. Có những kỹ thuật cho phép dữ liệu được sửa lỗi và sai lệch. Tuy nhiên, chúng có thể không hoạt động trên tập dữ liệu vốn đã bị sai lệch. Khi bạn biết điều gì tạo nên dữ liệu “tốt”, bạn phải quyết định cách thu thập dữ liệu đó và tìm nó ở đâu. Có một số chiến lược cho điều đó:
Tuy nhiên, đôi khi những chiến lược này không mang lại đủ dữ liệu. Bạn có thể bù đắp cho việc thiếu điểm dữ liệu bằng các kỹ thuật sau:
Bước tiếp theo cần thực hiện để chuẩn bị dữ liệu cho máy học là làm sạch dữ liệu đó. Làm sạch dữ liệu liên quan đến việc tìm và sửa lỗi, sự không nhất quán và các giá trị bị thiếu. Có một số cách tiếp cận để làm điều đó:
Xử lý dữ liệu bị thiếu
Thiếu giá trị là một vấn đề phổ biến trong học máy. Nó có thể được xử lý bằng cách quy nạp (nghĩ: điền các giá trị còn thiếu bằng dữ liệu dự đoán hoặc ước tính), nội suy (lấy các giá trị còn thiếu từ các điểm dữ liệu xung quanh) hoặc xóa (chỉ cần xóa các hàng hoặc cột có giá trị bị thiếu khỏi tập dữ liệu.)
Xử lý ngoại lệ
Ngoại lệ là các điểm dữ liệu khác biệt đáng kể so với phần còn lại của tập dữ liệu. Các ngoại lệ có thể xảy ra do lỗi đo lường, lỗi nhập dữ liệu hoặc đơn giản vì chúng đại diện cho các quan sát bất thường hoặc cực đoan. Ví dụ, trong một bộ dữ liệu về lương của nhân viên, một ngoại lệ có thể là một nhân viên kiếm được nhiều hơn hoặc ít hơn đáng kể so với những người khác. Các ngoại lệ có thể được xử lý bằng cách loại bỏ, biến đổi chúng để giảm tác động của chúng, chiến thắng (nghĩ: thay thế các giá trị cực đoan bằng các giá trị gần nhất nằm trong phạm vi phân phối thông thường) hoặc coi chúng là một loại dữ liệu riêng biệt.
Loại bỏ trùng lặp
Một bước khác trong quá trình chuẩn bị dữ liệu cho máy học là loại bỏ các dữ liệu trùng lặp. Các bản sao không chỉ làm sai lệch các dự đoán ML mà còn lãng phí dung lượng lưu trữ và tăng thời gian xử lý, đặc biệt là trong các bộ dữ liệu lớn. Để loại bỏ các bản sao, các nhà khoa học dữ liệu sử dụng nhiều kỹ thuật nhận dạng trùng lặp (như khớp chính xác, khớp mờ, băm hoặc liên kết bản ghi). Sau khi được xác định, chúng có thể được loại bỏ hoặc hợp nhất. Tuy nhiên, trong các bộ dữ liệu không cân bằng, trên thực tế, các bản sao có thể được hoan nghênh để đạt được phân phối bình thường.
Xử lý dữ liệu không liên quan
Dữ liệu không liên quan đề cập đến dữ liệu không hữu ích hoặc không thể áp dụng để giải quyết vấn đề. Xử lý dữ liệu không liên quan có thể giúp giảm nhiễu và cải thiện độ chính xác của dự đoán. Để xác định dữ liệu không liên quan, các nhóm dữ liệu sử dụng các kỹ thuật như phân tích thành phần chính, phân tích tương quan hoặc đơn giản là dựa vào kiến thức miền của họ. Sau khi được xác định, các điểm dữ liệu đó sẽ bị xóa khỏi tập dữ liệu.
Xử lý dữ liệu không chính xác
Chuẩn bị dữ liệu cho học máy cũng phải bao gồm việc xử lý dữ liệu không chính xác và sai sót. Các kỹ thuật phổ biến để xử lý dữ liệu đó bao gồm chuyển đổi dữ liệu (thay đổi dữ liệu để dữ liệu đáp ứng các tiêu chí đã đặt) hoặc xóa hoàn toàn các điểm dữ liệu không chính xác.
Xử lý dữ liệu mất cân bằng
Tập dữ liệu không cân bằng là tập dữ liệu trong đó số điểm dữ liệu trong một lớp thấp hơn đáng kể so với số điểm dữ liệu trong lớp khác. Điều này có thể dẫn đến một mô hình thiên lệch ưu tiên cho tầng lớp đa số, trong khi bỏ qua tầng lớp thiểu số. Để giải quyết vấn đề, các nhóm dữ liệu có thể sử dụng các kỹ thuật như lấy mẫu lại (lấy mẫu quá mức của lớp thiểu số hoặc lấy mẫu dưới lớp đa số để cân bằng việc phân phối dữ liệu), tạo dữ liệu tổng hợp (tạo điểm dữ liệu bổ sung cho lớp thiểu số một cách tổng hợp), chi phí -học tập nhạy cảm (gán trọng số cao hơn cho lớp thiểu số trong quá trình đào tạo), học tập đồng bộ (kết hợp nhiều mô hình được đào tạo trên các tập hợp con dữ liệu khác nhau bằng các thuật toán khác nhau) và các mô hình khác.
Các hoạt động này giúp đảm bảo rằng dữ liệu đào tạo là chính xác, đầy đủ và nhất quán. Mặc dù là một thành tích lớn nhưng vẫn chưa đủ để tạo ra một mô hình ML đáng tin cậy. Vì vậy, bước tiếp theo trong hành trình chuẩn bị dữ liệu cho máy học liên quan đến việc đảm bảo các điểm dữ liệu trong tập dữ liệu huấn luyện tuân thủ các quy tắc và tiêu chuẩn cụ thể. Và giai đoạn đó trong quy trình quản lý dữ liệu được gọi là chuyển đổi dữ liệu.
Trong giai đoạn chuyển đổi dữ liệu, bạn chuyển đổi dữ liệu thô sang định dạng phù hợp với thuật toán máy học. Điều đó đảm bảo hiệu suất và độ chính xác của thuật toán cao hơn.
Các chuyên gia của chúng tôi trong việc chuẩn bị dữ liệu cho máy học đặt tên cho các kỹ thuật chuyển đổi dữ liệu phổ biến sau:
mở rộng quy mô
Trong một tập dữ liệu, các tính năng khác nhau có thể sử dụng các đơn vị đo lường khác nhau. Ví dụ: bộ dữ liệu bất động sản có thể bao gồm thông tin về số lượng phòng trong mỗi bất động sản (từ một đến mười) và giá (từ 50.000 đến 1.000.000 USD). Nếu không mở rộng quy mô, thật khó để cân bằng tầm quan trọng của cả hai tính năng. Thuật toán có thể quá coi trọng tính năng có giá trị lớn hơn — trong trường hợp này là giá — và không đủ cho tính năng có giá trị dường như nhỏ hơn. Chia tỷ lệ giúp giải quyết vấn đề này bằng cách chuyển đổi tất cả các điểm dữ liệu theo cách làm cho chúng khớp với một phạm vi cụ thể, thường là từ 0 đến 1. Giờ đây, bạn có thể so sánh các biến khác nhau trên cơ sở bình đẳng.
bình thường hóa
Một kỹ thuật khác được sử dụng để chuẩn bị dữ liệu cho máy học là chuẩn hóa. Nó tương tự như mở rộng quy mô. Tuy nhiên, trong khi thay đổi quy mô thay đổi phạm vi của tập dữ liệu, chuẩn hóa sẽ thay đổi phân phối của nó.
mã hóa
Dữ liệu phân loại có một số giá trị giới hạn, ví dụ: màu sắc, kiểu xe hơi hoặc loài động vật. Vì các thuật toán máy học thường hoạt động với dữ liệu số nên dữ liệu phân loại phải được mã hóa để được sử dụng làm đầu vào. Vì vậy, mã hóa là viết tắt của việc chuyển đổi dữ liệu phân loại thành định dạng số. Có một số kỹ thuật mã hóa để lựa chọn, bao gồm mã hóa one-hot, mã hóa thứ tự và mã hóa nhãn.
rời rạc
Rời rạc hóa là một cách tiếp cận để chuẩn bị dữ liệu cho máy học, cho phép chuyển đổi các biến liên tục, chẳng hạn như thời gian, nhiệt độ hoặc trọng lượng, thành các biến rời rạc. Hãy xem xét một bộ dữ liệu chứa thông tin về chiều cao của mọi người. Chiều cao của mỗi người có thể được đo dưới dạng một biến số liên tục tính bằng feet hoặc cm. Tuy nhiên, đối với một số thuật toán ML nhất định, có thể cần phải phân tách dữ liệu này thành các danh mục, chẳng hạn như “ngắn”, “trung bình” và “cao”. Đây chính xác là những gì rời rạc hóa. Nó giúp đơn giản hóa tập dữ liệu huấn luyện và giảm độ phức tạp của vấn đề. Các cách tiếp cận phổ biến đối với quá trình rời rạc hóa trải rộng dựa trên cụm và dựa trên cây quyết định.
Giảm kích thước
Giảm kích thước là viết tắt của việc giới hạn số lượng tính năng hoặc biến trong tập dữ liệu và chỉ lưu giữ thông tin liên quan để giải quyết vấn đề. Hãy xem xét một bộ dữ liệu chứa thông tin về lịch sử mua hàng của khách hàng. Nó có ngày mua, mặt hàng đã mua, giá của mặt hàng và địa điểm diễn ra giao dịch mua. Giảm kích thước của tập dữ liệu này, chúng tôi bỏ qua tất cả trừ các tính năng quan trọng nhất, chẳng hạn như mặt hàng đã mua và giá của mặt hàng đó. Việc giảm kích thước có thể được thực hiện bằng nhiều kỹ thuật khác nhau, một số trong số đó là phân tích thành phần chính, phân tích phân biệt tuyến tính và nhúng lân cận ngẫu nhiên phân bổ t.
Chuyển đổi nhật ký
Một cách khác để chuẩn bị dữ liệu cho máy học, chuyển đổi nhật ký, đề cập đến việc áp dụng hàm logarit cho các giá trị của một biến trong tập dữ liệu. Nó thường được sử dụng khi dữ liệu huấn luyện có độ lệch cao hoặc có phạm vi giá trị lớn. Việc áp dụng hàm logarit có thể giúp phân phối dữ liệu đối xứng hơn.
Nói về chuyển đổi dữ liệu, chúng ta cũng nên đề cập đến kỹ thuật tính năng . Mặc dù là một dạng chuyển đổi dữ liệu, nhưng nó không chỉ là một kỹ thuật hay một bước trong quá trình chuẩn bị dữ liệu cho máy học. Nó là viết tắt của việc chọn, chuyển đổi và tạo các tính năng trong tập dữ liệu. Kỹ thuật tính năng liên quan đến sự kết hợp của các kỹ thuật thống kê, toán học và tính toán, bao gồm cả việc sử dụng các mô hình ML, để tạo các tính năng thu thập thông tin phù hợp nhất trong dữ liệu.
Nó thường là một quá trình lặp đi lặp lại yêu cầu thử nghiệm và đánh giá các kỹ thuật và sự kết hợp tính năng khác nhau để đưa ra phương pháp tốt nhất để giải quyết vấn đề.
Bước tiếp theo trong quá trình chuẩn bị dữ liệu cho máy học bao gồm việc chia tất cả dữ liệu đã thu thập thành các tập hợp con — quá trình này được gọi là phân tách dữ liệu. Thông thường, dữ liệu được chia nhỏ thành tập dữ liệu đào tạo, xác thực và thử nghiệm.
Bằng cách chia tách dữ liệu, chúng tôi có thể đánh giá mức độ hiệu quả của một mô hình máy học trên dữ liệu mà nó chưa từng thấy trước đây. Nếu không có sự phân tách, rất có thể mô hình sẽ hoạt động kém trên dữ liệu mới. Điều này có thể xảy ra vì mô hình có thể chỉ ghi nhớ các điểm dữ liệu thay vì học các mẫu và khái quát hóa chúng thành dữ liệu mới.
Có một số cách tiếp cận để phân tách dữ liệu và việc lựa chọn cách tối ưu nhất phụ thuộc vào vấn đề đang được giải quyết và các thuộc tính của tập dữ liệu. Các chuyên gia của chúng tôi trong việc chuẩn bị dữ liệu cho máy học nói rằng nhóm dữ liệu thường yêu cầu một số thử nghiệm để xác định chiến lược phân tách hiệu quả nhất. Sau đây là những cái phổ biến nhất:
Chuẩn bị đúng cách dữ liệu cho máy học là điều cần thiết để phát triển các giải pháp máy học chính xác và đáng tin cậy. Tại ITRex, chúng tôi hiểu những thách thức của việc chuẩn bị dữ liệu và tầm quan trọng của việc có một bộ dữ liệu chất lượng cho một quy trình học máy thành công.
Nếu bạn muốn tối đa hóa tiềm năng dữ liệu của mình thông qua học máy, hãy liên hệ với nhóm ITRex . Các chuyên gia của chúng tôi sẽ hỗ trợ thu thập, làm sạch và chuyển đổi dữ liệu của bạn.
Cũng được xuất bản ở đây .