Hiện nay có nhiều kỹ thuật khai phá dữ liệu, mô hình truy vấn, mô hình xử lý và thu thập dữ liệu khác nhau. Vậy bạn sẽ sử dụng một kỹ thuật nào để khai phá dữ liệu của mình và bạn có thể sử dụng kỹ thuật nào để kết hợp với phần mềm và cơ sở hạ tầng hiện có của mình? Hãy xem xét các kỹ thuật và các giải pháp khai phá dữ liệu và phân tích khác nhau và tìm hiểu cách xây dựng chúng nhờ sử dụng phần mềm và các bản cài đặt hiện có. Hãy khám phá các công cụ khai phá dữ liệu khác nhau có sẵn và tìm hiểu cách xác định xem kích thước và độ phức tạp của những thông tin của bạn có thể dẫn đến những khó khăn rắc rối về xử lý và lưu trữ không và cần phải làm gì.

Martin Brown, Phó chủ tịch của Technical Publications, Couchbase

Ảnh của Martin BrownMartin 'MC' Brown là một tác giả chuyên nghiệp suốt hơn 15 năm, ông viết bài và cộng tác viên cho hơn 26 cuốn sách nói về một loạt các chủ đề, bao gồm cả cuốn sách mới xuất bản gần đây là Getting Started with CouchDB. Chuyên môn của ông trải rộng qua nhiều ngôn ngữ và các nền tảng phát triển như Perl, Python, Java, JavaScript, Basic, Pascal, Modula-2, C, C++, Rebol, Gawk, Shellscript, Windows, Solaris, Linux, BeOS, Microsoft® WP, Mac OS,.... Ông nguyên là một biên tập viên về Các công nghệ LAMP cho tạp chí LinuxWorld và là một cộng tác viên thường xuyên cho ServerWatch.com, LinuxPlanet, ComputerWorld và IBM developerWorks. Ông đã phát huy nền tảng phong phú và đa dạng của mình để trở thành thành viên sáng lập của một ISP hàng đầu Vương quốc Anh, giám đốc hệ thống và chuyên gia tư vấn CNTT cho một nhóm đại lý quảng cáo và các giải pháp Internet, chuyên gia kỹ thuật cho một mạng ISP xuyên lục địa và nhà thiết kế và nhà lập trình cơ sở dữ liệu và tự nhận mình là người tiêu dùng bắt buộc phần cứng và phần mềm máy tính. MC hiện là Phó chủ tịch về các ấn phẩm và kiến thức kỹ thuật cho Couchbase và chịu trách nhiệm về tất cả tài liệu hướng dẫn, chương trình đào tạo và nội dung đã xuất bản và Vùng kỹ thuật (TechZone) của Couchbase.



26 03 2013

Khai phá dữ liệu là một quá trình

Về cơ bản, khai phá dữ liệu là về xử lý dữ liệu và nhận biết các mẫu và các xu hướng trong thông tin đó để bạn có thể quyết định hoặc đánh giá. Các nguyên tắc khai phá dữ liệu đã được dùng nhiều năm rồi, nhưng với sự ra đời của big data (dữ liệu lớn), nó lại càng phổ biến hơn.

Big data gây ra một sự bùng nổ về sử dụng nhiều kỹ thuật khai phá dữ liệu hơn, một phần vì kích thước thông tin lớn hơn rất nhiều và vì thông tin có xu hướng đa dạng và mở rộng hơn về chính bản chất và nội dung của nó. Với các tập hợp dữ liệu lớn, để nhận được số liệu thống kê tương đối đơn giản và dễ dàng trong hệ thống vẫn chưa đủ. Với 30 hoặc 40 triệu bản ghi thông tin khách hàng chi tiết, việc biết rằng 2 triệu khách hàng trong số đó sống tại một địa điểm vẫn chưa đủ. Bạn muốn biết liệu 2 triệu khách hàng đó có thuộc về một nhóm tuổi cụ thể không và bạn cũng muốn biết thu nhập trung bình của họ để bạn có thể tập trung vào các nhu cầu của khách hàng của mình tốt hơn.

Những nhu cầu hướng kinh doanh này đã thay đổi cách lấy ra và thống kê dữ liệu đơn giản sang việc khai phá dữ liệu phức tạp hơn. Vấn đề kinh doanh hướng tới việc xem xét dữ liệu để giúp xây dựng một mô hình để mô tả các thông tin mà cuối cuộc sẽ dẫn đến việc tạo ra báo cáo kết quả. Hình 1 phác thảo quá trình này.

Hình 1. Phác thảo quá trình
Phác thảo quá trình

Quá trình phân tích dữ liệu, khám phá dữ liệu và xây dựng mô hình dữ liệu thường lặp lại khi bạn tập trung vào và nhận ra các thông tin khác nhau để bạn có thể trích ra. Bạn cũng phải hiểu cách thiết lập quan hệ, ánh xạ, kết hợp và phân cụm thông tin đó với dữ liệu khác để tạo ra kết quả. Quá trình nhận ra dữ liệu nguồn và các định dạng nguồn, rồi ánh xạ thông tin đó tới kết quả đã cho của chúng tôi có thể thay đổi sau khi bạn phát hiện ra các yếu tố và các khía cạnh khác nhau của dữ liệu.


Các công cụ khai phá dữ liệu

Khai phá dữ liệu không phải là tất cả về các công cụ hay phần mềm cơ sở dữ liệu mà bạn đang sử dụng. Bạn có thể thực hiện khai phá dữ liệu bằng các hệ thống cơ sở dữ liệu bình thường và các công cụ đơn giản, bao gồm việc tạo và viết phần mềm riêng của bạn hoặc sử dụng các gói phần mềm bán ngoài cửa hàng. Khai phá dữ liệu phức tạp được hưởng lợi từ kinh nghiệm trong quá khứ và các thuật toán đã định nghĩa với phần mềm và các gói phần mềm hiện có, với các công cụ nhất định để thu được một mối quan hệ hoặc uy tín lớn hơn bằng các kỹ thuật khác nhau.

Ví dụ, IBM SPSS®, có nguồn gốc từ việc phân tích thống kê và khảo sát, có thể xây dựng các mô hình dự báo hiệu quả bằng cách xem xét các xu hướng trong quá khứ và xây dựng các dự báo chính xác. IBM InfoSphere® Warehouse cung cấp thông tin tìm nguồn cấp dữ liệu, thông tin xử lý trước, thông tin khai phá và thông tin phân tích trong một gói duy nhất, để cho phép bạn lấy thông tin thẳng từ cơ sở dữ liệu nguồn đến đầu ra báo cáo cuối cùng.

Gần đây các tập hợp dữ liệu rất lớn và việc xử lý dữ liệu theo cụm và quy mô lớn có thể cho phép khai phá dữ liệu để sắp xếp và lập báo cáo về các nhóm và các mối tương quan của dữ liệu phức tạp hơn. Bây giờ đã có sẵn rất nhiều công cụ và hệ thống hoàn toàn mới, gồm các hệ thống lưu trữ và xử lý dữ liệu kết hợp.

Bạn có thể khai phá dữ liệu với nhiều tập hợp dữ liệu khác nhau, gồm các cơ sở dữ liệu SQL truyền thống, dữ liệu văn bản thô, các kho khóa/giá trị và các cơ sở dữ liệu tài liệu. Các cơ sở dữ liệu có phân cụm, như Hadoop, Cassandra, CouchDB và Couchbase Server, lưu trữ và cung cấp quyền truy cập vào dữ liệu theo cách không phù hợp với cấu trúc bảng truyền thống.

Đặc biệt, định dạng lưu trữ cơ sở dữ liệu tài liệu linh hoạt hơn lại gây ra một trọng tâm và sự phức tạp khác về xử lý thông tin. Các cơ sở dữ liệu SQL áp đặt các cấu trúc chặt chẽ và cứng nhắc vào lược đồ, làm cho việc truy vấn chúng và phân tích dữ liệu trở nên đơn giản theo quan điểm hiểu rõ định dạng và cấu trúc thông tin.

Các cơ sở dữ liệu tài liệu, có một tiêu chuẩn chẳng hạn như cấu trúc thực thi JSON hoặc các tệp có cấu trúc đọc được bằng máy tính nào đó, cũng dễ xử lý hơn, mặc dù chúng có thể làm tăng thêm sự phức tạp do cấu trúc khác nhau và hay thay đổi. Ví dụ, với việc xử lý dữ liệu hoàn toàn thô của Hadoop, có thể phức tạp để nhận biết và trích ra nội dung trước khi bạn bắt đầu xử lý và tương quan với nó.


Các kỹ thuật chính

Một số kỹ thuật cốt lõi, được sử dụng trong khai phá dữ liệu, mô tả kiểu hoạt động khai phá và hoạt động phục hồi dữ liệu. Thật không may là các công ty và các giải pháp khác nhau không phải lúc nào cũng dùng chung các thuật ngữ. Chính các thuật ngữ này có thể làm tăng thêm sự mơ hồ và sự phức tạp.

Hãy xem xét một số kỹ thuật chính và ví dụ về cách sử dụng các công cụ khác nhau để dựng lên việc khai phá dữ liệu.

Sự kết hợp

Sự kết hợp (hay mối quan hệ) có lẽ là kỹ thuật khai phá dữ liệu được biết đến nhiều hơn, hầu như quen thuộc và đơn giản. Ở đây, bạn thực hiện một sự tương quan đơn giản giữa hai hoặc nhiều mục, thường cùng kiểu để nhận biết các mẫu. Ví dụ, khi theo dõi thói quen mua hàng của người dân, bạn có thể nhận biết rằng một khách hàng luôn mua kem khi họ mua dâu tây, nên bạn có thể đề xuất rằng lần tới khi họ mua dâu tây, họ cũng có thể muốn mua kem.

Việc xây dựng các công cụ khai phá dữ liệu dựa trên sự kết hợp hay mối quan hệ có thể thực hiện đơn giản bằng các công cụ khác nhau. Ví dụ, trong InfoSphere Warehouse một trình hướng dẫn đưa ra các cấu hình của một luồng thông tin được sử dụng kết hợp bằng cách xem xét thông tin nguồn đầu vào của cơ sở dữ liệu, thông tin về cơ sở ra quyết định và thông tin đầu ra của bạn. Hình 2 cho thấy một ví dụ của cơ sở dữ liệu ví dụ mẫu.

Hình 2. Luồng thông tin được sử dụng theo cách kết hợp
Luồng thông tin được sử dụng theo cách kết hợp

Sự phân loại

Bạn có thể sử dụng sự phân loại để xây dựng một ý tưởng về kiểu khách hàng, kiểu mặt hàng hoặc kiểu đối tượng bằng cách mô tả nhiều thuộc tính để nhận biết một lớp cụ thể. Ví dụ, bạn có thể dễ dàng phân loại các xe ô tô thành các kiểu xe khác nhau (xe mui kín, 4x4, xe có thể bỏ mui) bằng cách xác định các thuộc tính khác nhau (số chỗ ngồi, hình dạng xe, các bánh xe điều khiển). Với một chiếc xe mới, bạn có thể đặt nó vào một lớp cụ thể bằng cách so sánh các thuộc tính với định nghĩa đã biết của chúng tôi. Bạn có thể áp dụng các nguyên tắc tương tự ấy cho các khách hàng, ví dụ bằng cách phân loại khách hàng theo độ tuổi và nhóm xã hội.

Hơn nữa, bạn có thể sử dụng việc phân loại như một nguồn cấp, hoặc như là kết quả của các kỹ thuật khác. Ví dụ, bạn có thể sử dụng các cây quyết định để xác định một cách phân loại. Việc phân cụm sẽ cho phép bạn sử dụng các thuộc tính chung theo các cách phân loại khác nhau để nhận biết các cụm.

Việc phân cụm (Clustering)

Bằng cách xem xét một hay nhiều thuộc tính hoặc các lớp, bạn có thể nhóm các phần dữ liệu riêng lẻ với nhau để tạo thành một quan điểm cấu trúc. Ở mức đơn giản, việc phân cụm đang sử dụng một hoặc nhiều thuộc tính làm cơ sở cho bạn để nhận ra một nhóm các kết quả tương quan. Việc phân cụm giúp để nhận biết các thông tin khác nhau vì nó tương quan với các ví dụ khác, nên bạn có thể thấy ở đâu có những điểm tương đồng và các phạm vi phù hợp.

Việc phân cụm có thể làm theo hai cách. Bạn có thể giả sử rằng có một cụm ở một điểm nhất định và sau đó sử dụng các tiêu chí nhận dạng của chúng tôi để xem liệu bạn có đúng không. Đồ thị trong Hình 3 là một ví dụ hay. Trong ví dụ này, một ví dụ mẫu về dữ liệu kinh doanh so sánh tuổi của khách hàng với quy mô bán hàng. Thật hợp lý khi thấy rằng những người ở độ tuổi hai mươi (trước khi kết hôn và còn nhỏ), ở độ tuổi năm mươi và sáu mươi (khi không còn con cái ở nhà), có nhiều tiền tiêu hơn.

Hình 3. Việc phân cụm
Việc phân cụm

Trong ví dụ này, chúng ta có thể nhận ra hai cụm, một cụm xung quanh nhóm 2.000 Đô la Mỹ/ 20-30 tuổi và một cụm ở nhóm 7.000-8.000 Đô la Mỹ/ 50-65 tuổi. Trong trường hợp này, chúng tôi đã giả thuyết hai cụm và đã chứng minh giả thuyết của chúng tôi bằng một đồ thị đơn giản mà chúng tôi có thể tạo ra bằng cách sử dụng bất kỳ phần mềm đồ họa thích hợp nào để có được cái nhìn nhanh chóng. Các quyết định phức tạp hơn cần phải có một gói phần mềm phân tích đầy đủ, đặc biệt là nếu bạn muốn các quyết định tự động dựa vào thông tin lân cận gần nhất.

Việc vẽ đồ thị phân cụm theo cách này là một ví dụ đơn giản về cái gọi là nhận ra sự lân cận gần nhất. Bạn có thể nhận ra các khách hàng riêng lẻ bằng sự gần gũi theo nghĩa đen của họ với nhau trên đồ thị. Có nhiều khả năng là các khách hàng trong cùng một cụm cũng dùng chung các thuộc tính khác và bạn có thể sử dụng sự mong đợi đó để giúp hướng dẫn, phân loại và nếu không thì phân tích những người khác trong tập hợp dữ liệu của bạn.

Bạn cũng có thể áp dụng việc phân cụm theo quan điểm ngược lại; dựa vào một số thuộc tính đầu vào, bạn có thể nhận ra các tạo phẩm khác nhau. Ví dụ, một nghiên cứu gần đây về các số PIN 4-chữ số đã tìm ra các cụm giữa các chữ số trong phạm vi 1-12 và 1-31 cho các cặp đầu tiên và thứ hai. Bằng cách vẽ các cặp này, bạn có thể nhận ra và xác định các cụm liên quan đến ngày tháng (các ngày sinh nhật, các ngày kỷ niệm).

Dự báo

Dự báo là một chủ đề rộng và đi từ dự báo về lỗi của các thành phần hay máy móc đến việc nhận ra sự gian lận và thậm chí là cả dự báo về lợi nhuận của công ty nữa. Được sử dụng kết hợp với các kỹ thuật khai phá dữ liệu khác, dự báo gồm có việc phân tích các xu hướng, phân loại, so khớp mẫu và mối quan hệ. Bằng cách phân tích các sự kiện hoặc các cá thể trong quá khứ, bạn có thể đưa ra một dự báo về một sự kiện.

Khi sử dụng quyền hạn thẻ tín dụng, chẳng hạn, bạn có thể kết hợp phân tích cây quyết định của các giao dịch riêng lẻ trong quá khứ với việc phân loại và các sự so khớp mẫu lịch sử để nhận biết liệu một giao dịch có gian lận hay không. Rất có thể là việc thực hiện một sự so khớp giữa việc mua vé các chuyến bay đến Mỹ và các giao dịch tại Mỹ cho thấy giao dịch này hợp lệ.

Các mẫu tuần tự

Thường được sử dụng trên các dữ liệu dài hạn, các mẫu tuần tự là một phương pháp có ích để nhận biết các xu hướng hay các sự xuất hiện thường xuyên của các sự kiện tương tự. Ví dụ, với dữ liệu khách hàng, bạn có thể nhận ra rằng các khách hàng cùng nhau mua một bộ sưu tập riêng lẻ về các sản phẩm tại nhiều thời điểm khác nhau trong năm. Trong một ứng dụng giỏ hàng, bạn có thể sử dụng thông tin này để tự động đề xuất rằng một số mặt hàng nào đó được thêm vào một giỏ hàng dựa trên tần suất và lịch sử mua hàng trong quá khứ của các khách hàng.

Các cây quyết định

Liên quan đến hầu hết các kỹ thuật khác (chủ yếu là phân loại và dự báo), cây quyết định có thể được sử dụng hoặc như là một phần trong các tiêu chí lựa chọn hoặc để hỗ trợ việc sử dụng và lựa chọn dữ liệu cụ thể bên trong cấu trúc tổng thể. Trong cây quyết định, bạn bắt đầu bằng một câu hỏi đơn giản có hai câu trả lời (hoặc đôi khi có nhiều câu trả lời hơn). Mỗi câu trả lời lại dẫn đến thêm một câu hỏi nữa để giúp phân loại hay nhận biết dữ liệu sao cho có thể phân loại dữ liệu hoặc sao cho có thể thực hiện dự báo trên cơ sở mỗi câu trả lời.

Hình 4 cho thấy một ví dụ trong đó bạn có thể phân loại một điều kiện lỗi gửi đến.

Hình 4. Cây quyết định
cây quyết định

Các cây quyết định thường được sử dụng cùng với các hệ thống phân loại liên quan đến thông tin có kiểu thuộc tính và với các hệ thống dự báo, nơi các dự báo khác nhau có thể dựa trên kinh nghiệm lịch sử trong quá khứ để giúp hướng dẫn cấu trúc của cây quyết định và kết quả đầu ra.

Các tổ hợp

Trong thực tế, thật hiếm khi bạn sẽ sử dụng một kỹ thuật trong số những kỹ thuật riêng biệt này. Việc phân loại và phân cụm là những kỹ thuật giống nhau. Nhờ sử dụng việc phân cụm để nhận ra các thông tin lân cận gần nhất, bạn có thể tiếp tục tinh chỉnh việc phân loại của mình. Thông thường, chúng tôi sử dụng các cây quyết định để giúp xây dựng và nhận ra các loại mà chúng tôi có thể theo dõi chúng trong một thời gian dài để nhận biết các trình tự và các mẫu.

Xử lý (bộ nhớ) dài hạn

Trong tất cả các phương pháp cốt lõi, thường có lý do để ghi lại thông tin và tìm hiểu từ thông tin. Trong một số kỹ thuật, việc này hoàn toàn rõ ràng. Ví dụ, với việc tìm hiểu các mẫu tuần tự và dự báo, bạn xem xét lại dữ liệu từ nhiều nguồn và nhiều cá thể thông tin để xây dựng một mẫu.

Trong một số kỹ thuật khác, quá trình này có thể rõ ràng hơn. Các cây quyết định ít khi được xây dựng một lần và không bao giờ được coi nhẹ. Khi nhận biết thông tin mới, các sự kiện và các điểm dữ liệu, có thể cần xây dựng thêm các nhánh hoặc thậm chí toàn bộ các cây mới, để đương đầu với các thông tin bổ sung.

Bạn có thể tự động hoá một số bước của quá trình này. Ví dụ, việc xây dựng một mô hình dự báo để nhận biết sự gian lận thẻ tín dụng là xây dựng các xác suất để bạn có thể sử dụng cho giao dịch hiện tại và sau đó cập nhật mô hình đó với các giao dịch mới (đã được phê duyệt). Rồi thông tin này được ghi lại sao cho có thể đưa ra quyết định một cách nhanh chóng trong lần tới.


Chuẩn bị và triển khai dữ liệu

Bản thân việc khai phá dữ liệu dựa vào việc xây dựng một mô hình và cấu trúc dữ liệu phù hợp để có thể sử dụng mô hình và cấu trúc đó để xử lý, nhận biết và xây dựng thông tin mà bạn cần. Bất kể dạng và cấu trúc nguồn dữ liệu, hãy cấu trúc và tổ chức thông tin theo một định dạng để cho phép việc khai phá dữ liệu diễn ra theo một mô hình càng hiệu quả càng tốt.

Hãy xem xét tổ hợp các yêu cầu kinh doanh để khai phá dữ liệu, nhận ra các biến hiện có (khách hàng, các giá trị, quốc gia) và yêu cầu để tạo ra các biến mới để bạn có thể sử dụng chúng để phân tích dữ liệu trong bước chuẩn bị.

Bạn có thể tạo nên các biến phân tích của dữ liệu từ nhiều nguồn khác nhau cho một cấu trúc có thể nhận biết được duy nhất (ví dụ, bạn có thể tạo ra một lớp của một cấp cụ thể và tuổi của khách hàng hoặc một kiểu lỗi cụ thể).

Tùy thuộc vào nguồn dữ liệu của bạn, cách bạn xây dựng và chuyển dịch thông tin này là một bước quan trọng, bất kể bạn sử dụng kỹ thuật nào để cuối cùng phân tích dữ liệu. Bước này cũng dẫn đến một quá trình phức tạp trong việc nhận biết, tổng hợp, đơn giản hóa hoặc mở rộng thông tin cho phù hợp với dữ liệu đầu vào của bạn (xem Hình 5).

Hình 5. Chuẩn bị dữ liệu
Chuẩn bị dữ liệu

Dữ liệu nguồn, vị trí và cơ sở dữ liệu của bạn ảnh hưởng đến cách bạn xử lý và tổng hợp thông tin đó.

Việc xây dựng trên SQL

Việc xây dựng trên một cơ sở dữ liệu SQL thường là dễ dàng nhất trong tất cả các cách tiếp cận. Bạn hiểu rõ SQL (và cả cấu trúc bảng bên dưới mà chúng ngụ ý), nhưng bạn không thể hoàn toàn bỏ qua cấu trúc và định dạng thông tin. Ví dụ, khi xem xét hành vi của người dùng trong dữ liệu kinh doanh, bạn có thể sử dụng hai định dạng chính trong mô hình dữ liệu SQL (và việc khai phá dữ liệu nói chung): định dạng giao dịch và định dạng nhân khẩu học-hành vi.

Khi bạn sử dụng InfoSphere Warehouse, việc tạo ra một mô hình nhân khẩu học-hành vi cho các mục đích về khai phá dữ liệu khách hàng để hiểu việc mua và các mẫu mua sắm bao gồm việc lấy dữ liệu SQL nguồn của bạn dựa trên các thông tin giao dịch và các tham số đã biết của các khách hàng của bạn và xây dựng lại thông tin đó thành một cấu trúc bảng định sẵn. Sau đó InfoSphere Warehouse có thể sử dụng thông tin này cho việc phân cụm và khai phá dữ liệu phân loại để thu được thông tin bạn cần. Dữ liệu nhân khẩu học của khách hàng và dữ liệu giao dịch doanh thu có thể được kết hợp lại và khôi phục lại vào một định dạng để cho phép phân tích dữ liệu cụ thể, như hiển thị trong Hình 6.

Hình 6. Định dạng cho việc phân tích dữ liệu cụ thể
Định dạng cho việc phân tích dữ liệu cụ thể

Ví dụ, với dữ liệu kinh doanh, bạn có thể muốn nhận ra các xu hướng kinh doanh các mặt hàng riêng lẻ. Bạn có thể chuyển đổi các dữ liệu doanh thu thô của các mặt hàng riêng lẻ thành thông tin giao dịch để ánh xạ mã định danh (ID) của khách hàng, dữ liệu giao dịch và mã định danh sản phẩm. Nhờ sử dụng thông tin này, thật dễ nhận ra các trình tự và các mối quan hệ với các sản phẩm riêng lẻ của các khách hàng riêng lẻ theo thời gian. Điều đó cho phép InfoSphere Warehouse tính toán thông tin liên tục, chẳng hạn như khi một khách hàng rất có thể lại mua sản phẩm đó.

Bạn có thể xây dựng các điểm phân tích dữ liệu mới từ dữ liệu nguồn. Ví dụ, bạn có thể muốn mở rộng (hoặc tinh chỉnh) thông tin sản phẩm của mình bằng cách sắp đặt hay phân loại các sản phẩm riêng lẻ vào các nhóm lớn hơn và sau đó phân tích dữ liệu dựa trên các nhóm này thay cho việc phân tích một sản phẩm riêng lẻ.

Ví dụ, Bảng 1 cho thấy cách mở rộng các thông tin theo những cách mới.

Bảng 1. Một bảng các sản phẩm mở rộng
mã định danh_sản phẩmtên_sản phẩmnhóm_sản phẩmkiểu_sản phẩm
101dâu tây, lẻdâu tâyquả
102dâu tây, hộpdâu tâyquả
110chuối, lẻ chuốiquả

Các cơ sở dữ liệu tài liệu và MapReduce

Người ta thiết kế MapReduce để xử lý nhiều cơ sở dữ liệu tài liệu hiện đại và NoSQL, như Hadoop, để đối phó với các tập hợp dữ liệu rất lớn và thông tin không phải lúc nào cũng theo định dạng bảng. Khi bạn làm việc với phần mềm khai phá dữ liệu, khái niệm này có thể vừa có ích và vừa có vấn đề.

Vấn đề chính với dữ liệu dựa trên tài liệu là ở chỗ định dạng không có cấu trúc có thể cần phải xử lý nhiều hơn là bạn mong đợi để có được thông tin bạn cần. Nhiều bản ghi khác nhau có thể chứa dữ liệu giống nhau. Việc thu thập và phối hợp thông tin này để xử lý nó một cách dễ dàng hơn dựa vào việc chuẩn bị và các giai đoạn của MapReduce.

Trong một hệ thống dựa trên MapReduce, vai trò của bước ánh xạ là lấy dữ liệu nguồn và chuẩn hóa thông tin đó thành một dạng chuẩn của đầu ra. Bước này có thể là một quá trình tương đối đơn giản (nhận biết các trường hoặc các điểm dữ liệu chính) hoặc có thể là một quá trình phức tạp hơn (phân tích cú pháp và xử lý thông tin để tạo ra dữ liệu mẫu). Quá trình ánh xạ tạo ra định dạng chuẩn hóa để bạn có thể sử dụng định dạng đó làm định dạng cơ sở của mình.

Sự rút gọn là việc tóm tắt hoặc định lượng thông tin và sau đó xuất ra thông tin đó dưới dạng một cấu trúc chuẩn hóa, dựa trên các tổng số, các tổng, số liệu thống kê hay phân tích khác mà bạn đã chọn để xuất ra.

Việc truy vấn dữ liệu này thường rất phức tạp, ngay cả khi bạn sử dụng các công cụ được thiết kế để làm việc này. Trong một bài tập khai phá dữ liệu, cách tiếp cận lý tưởng là sử dụng giai đoạn khai phá dữ liệu của MapReduce làm một phần trong bài tập chuẩn bị dữ liệu của bạn.

Ví dụ, nếu bạn đang xây dựng một bài tập khai phá dữ liệu để kết hợp hoặc phân cụm, giai đoạn đầu tiên tốt nhất là xây dựng một mô hình thống kê thích hợp để bạn có thể sử dụng mô hình này để nhận biết và trích ra thông tin cần thiết. Việc sử dụng giai đoạn MapReduce để trích ra và tính toán thông tin thống kê đó rồi nhập nó vào phần còn lại của quá trình khai phá dữ liệu, dẫn đến một cấu trúc như thể hiện trong Hình 7.

Hình 7. Cấu trúc MapReduce
Cấu trúc MapReduce

Trong ví dụ trước, chúng tôi đã thực hiện việc xử lý (trong trường hợp này là MapReduce) của dữ liệu nguồn trong một cơ sở dữ liệu tài liệu và đã chuyển dịch nó sang một định dạng bảng trong một cơ sở dữ liệu SQL cho các mục đích khai phá dữ liệu.

Làm việc với thông tin phức tạp hay thậm chí chưa định dạng này có thể cần phải chuẩn bị và xử lý thông tin còn phức tạp hơn. Có một số kiểu và cấu trúc dữ liệu phức tạp không thể được xử lý và được chuẩn bị chỉ trong một bước thành kết quả đầu ra mà bạn cần. Ở đây bạn có thể nối chuỗi đầu ra của MapReduce của bạn hoặc để ánh xạ và tạo ra cấu trúc dữ liệu mà bạn cần theo tuần tự, như trong Hình 8, hoặc riêng lẻ để tạo ra nhiều bảng dữ liệu đầu ra.

Hình 8. Nối chuỗi đầu ra của MapReduce của bạn theo tuần tự
Nối chuỗi đầu ra của MapReduce của bạn theo tuần tự

Ví dụ, việc lấy thông tin ghi nhật ký thô từ một cơ sở dữ liệu tài liệu và chạy MapReduce để tạo ra một khung nhìn tóm tắt các thông tin đó theo ngày có thể được thực hiện chỉ một lần duy nhất. Việc tạo lại thông tin và kết hợp đầu ra đó với một ma trận quyết định (được mã hóa trong giai đoạn MapReduce thứ hai) và sau đó tiếp tục đơn giản hóa thành một cấu trúc tuần tự, là một ví dụ hay của quá trình nối chuỗi này. Chúng tôi cần có toàn bộ dữ liệu đã thiết lập trong giai đoạn MapReduce để hỗ trợ dữ liệu của bước riêng này.

Bất kể dữ liệu nguồn của bạn, có nhiều công cụ có thể sử dụng tệp phẳng, CSV hoặc các nguồn dữ liệu khác. Ví dụ, InfoSphere Warehouse có thể phân tích cú pháp các tệp phẳng ngoài một liên kết trực tiếp đến một kho dữ liệu DB2.


Kết luận

Việc khai phá dữ liệu còn hơn việc chạy một số truy vấn phức tạp trên dữ liệu mà bạn đã lưu trong cơ sở dữ liệu của mình. Bạn phải làm việc với dữ liệu của mình, định dạng lại nó hoặc cấu trúc lại nó, bất kể bạn có đang sử dụng SQL, cơ sở dữ liệu dựa trên tài liệu như Hadoop hoặc các tệp phẳng đơn giản hay không. Việc nhận ra định dạng thông tin mà bạn cần được dựa trên kỹ thuật và việc phân tích mà bạn muốn làm. Sau khi bạn có thông tin theo định dạng mà bạn cần, bạn có thể áp dụng các kỹ thuật khác (riêng lẻ hay kết hợp lại với nhau) không phân biệt cấu trúc dữ liệu cơ bản hay tập hợp dữ liệu cần thiết.

Tài nguyên

Học tập

Lấy sản phẩm và công nghệ

  • Hadoop hỗ trợ một số cấu trúc NoSQL, chẳng hạn như định dạng không lược đồ và khả năng sử dụng một MapReduce để xử lý các dữ liệu đã lưu.
  • Kho dữ liệu InfoSphere cung cấp bộ công cụ đầy đủ để xây dựng và phân tích dữ liệu để hỗ trợ nhiều kỹ thuật khai phá dữ liệu.
  • WEKA là một bộ công cụ dựa trên Java™ dùng để hỗ trợ nhiều thuật toán khai phá dữ liệu và thống kê khác nhau.
  • SPSS là một gói phần mềm thống kê bao gồm các khả năng phân tích dự báo mạnh.
  • Hadoop cung cấp chức năng MapReduce mạnh mẽ.
  • Couchbase Server là một cơ sở dữ liệu tài liệu NoSQL với MapReduce dựa trên việc truy vấn và lập chỉ mục.
  • Phần mềm đánh giá: Tải về hoặc khám phá các bản dùng thử trực tuyến trong Sandbox SOA của IBM và dùng thử các công cụ phát triển ứng dụng và các sản phẩm phần mềm trung gian từ DB2®, Lotus®, Rational®, Tivoli® và WebSphere®.

Thảo luận

Bình luận

developerWorks: Đăng nhập

Các trường được đánh dấu hoa thị là bắt buộc (*).


Bạn cần một ID của IBM?
Bạn quên định danh?


Bạn quên mật khẩu?
Đổi mật khẩu

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Ở lần bạn đăng nhập đầu tiên vào trang developerWorks, một hồ sơ cá nhân của bạn được tạo ra. Thông tin trong bản hồ sơ này (tên bạn, nước/vùng lãnh thổ, và tên cơ quan) sẽ được trưng ra cho mọi người và sẽ đi cùng các nội dung mà bạn đăng, trừ khi bạn chọn việc ẩn tên cơ quan của bạn. Bạn có thể cập nhật tài khoản trên trang IBM bất cứ khi nào.

Thông tin gửi đi được đảm bảo an toàn.

Chọn tên hiển thị của bạn



Lần đầu tiên bạn đăng nhập vào trang developerWorks, một bản trích ngang được tạo ra cho bạn, bạn cần phải chọn một tên để hiển thị. Tên hiển thị của bạn sẽ đi kèm theo các nội dung mà bạn đăng tải trên developerWorks.

Tên hiển thị cần có từ 3 đến 30 ký tự. Tên xuất hiện của bạn phải là duy nhất trên trang Cộng đồng developerWorks và vì lí do an ninh nó không phải là địa chỉ email của bạn.

Các trường được đánh dấu hoa thị là bắt buộc (*).

(Tên hiển thị cần có từ 3 đến 30 ký tự)

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Thông tin gửi đi được đảm bảo an toàn.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=70
Zone=Information Management, Nguồn mở
ArticleID=862679
ArticleTitle=Các kỹ thuật khai phá dữ liệu
publish-date=03262013