Đặt vấn đề - Tại sao cần thu thập dữ liệu Đối với doanh nghiệp hiện nay, việc thu thập dữ liệu có nhiều mục đích như: để so sánh giá cả, biết được sự hài lòng của khách hàng, so sánh khách hàng tiềm năng. Đối với người làm khoa học dữ liệu (Data Scientist) hay với các cá nhân, việc thu thập dữ liệu có các mục đích như: tìm kiếm các thông tin yêu thích trên các trang web, nhận thông tin việc làm – tiền lương từ các trang web tuyển dụng, tìm kiếm các chủ đề nóng trên các trang web xã hội, lướt các trang blog ẩm thực để tìm kiếm các công thức nấu ăn cụ thể hay các bài đánh giá khác nhau. Giới thiệu về Web Scraping Web Scraping, còn gọi là Data Mining (khai thác dữ liệu web) hoặc Web Harvesting (thu thập web), là quá trình xây dựng một ứng dụng có thể trích xuất, phân tích cú pháp, tải và sắp xếp thông tin hữu ích từ web một cách tự động. Dữ liệu (data): là thứ không thể thiếu đối với bất kỳ ai làm việc với dữ liệu; yêu cầu cơ bản của mọi dự án Khoa học Dữ liệu hay mọi ứng dụng là số lượng lớn dữ liệu hữu ích.
Phương pháp thu thập dữ liệu [14]: ✓ Sử dụng tính năng web scraping để có được lượng lớn dữ liệu có sẵn trực tuyến. ✓ Phần mềm web scraping sẽ tự động tải và trích xuất dữ liệu từ nhiều trang web. ✓ Trang web thương mại điện tử (E-commerce Websites) – thu thập dữ liệu liên quan đặc biệt đến giá cả của một sản phẩm cụ thể từ các trang web thương mại điện tử khác nhau để so sánh. ✓ Công cụ tổng hợp nội dung (Content Aggregators) – được sử dụng rộng rãi bởi các công ty tổng hợp nội dung như tổng hợp tin tức và tổng hợp việc làm để cung cấp dữ liệu cập nhật cho khách hàng của họ.
✓ Chiến dịch tiếp thị và bán hàng (Marketing & Sales Campaigns): có thể sử dụng để lấy dữ liệu như email, số điện thoại cho các chiến dịch bán hàng và tiếp thị. ✓ Tối ưu hóa công cụ tìm kiếm (Search Engine Optimization – SEO): được sử dụng rộng rãi cho các cộng cụ SEO để doanh nghiệp biết cách họ xếp hạng cho các từ khóa tìm kiếm quan trọng. ✓ Dữ liệu cho các dự án máy học (Data for Machine Learning Projects): việc HVTH: Nguyễn Tấn Lộc Trang 9 Xây dựng hệ thống khuyến nghị sản phẩm sử dụng máy học GVHD: PGS.TS Hồ Văn Khương truy xuất dữ liệu cho các dự án máy học phụ thuộc vào việc tìm kiếm trên web. Quy trình làm việc: Hình 2.2: Quy trình thu thập dữ liệu web (Web Scraping) ✓ Hiểu những gì chúng ta muốn thực hiện.
✓ Tìm nguồn dữ liệu để giúp chúng ta thực hiện điều đó. HVTH: Nguyễn Tấn Lộc Trang 10 Xây dựng hệ thống khuyến nghị sản phẩm sử dụng máy học GVHD: PGS.TS Hồ Văn Khương ✓ Đọc dữ liệu thô online. ✓ Định dạng dữ liệu này để có thể sử dụng được. ✓ Sử dụng Selenium hoặc Beautiful Soup thông qua Python để thu thập dữ liệu.
✓ Processing – Xử lý dữ liệu, có nhiều lựa chọn công việc. ✓ Tính hợp pháp (Legality) ✓ Trước khi thu thập dữ liệu bất kỳ trang web nào, chúng ta cần phải tìm hiểu về tính hợp pháp của việc thu thập thông tin. ✓ Nếu sử dụng dữ liệu cho mục đích cá nhân (ngoài phục vụ giáo dục), mục đích kinh doanh hay các mục đích khác, thì trước khi thực hiện, chúng ta cần gửi yêu cầu cho chủ sở hữu hoặc tìm hiểu về các chính sách thu thập dữ liệu cho dữ liệu sẽ được thu thập [15]. Data preprocessing and analysis – Tiền xử lý và phân tích dữ liệu 2.1 Data Visualization – Trực quan hoá dữ liệu Trực quan hoá dữ liệu là việc sử dụng các biểu diễn trực quan của dữ liệu trừu tượng thông qua sự hỗ trợ của máy tính để mở rộng nhận thức.
Trực quan dữ liệu nhằm khai thác sức mạnh đáng kinh ngạc của hệ thống trực quan, phát hiện các mối quan hệ và xu huống, giúp người xem thấy trực quan và dễ hiểu, qua đó giúp giải quyết các vấn đề đã đặt ra. Biểu đồ tương tác trực tiếp với hệ thống thi giác, giúp chúng ta xử lý thông tin nhanh hơn, giải thích khối lượng lớn dữ liệu ngay lập tức hay kể câu chuyện về dữ liệu trong thời gian rất ngắn.2 Data exploration – Khám phá, làm sạch dữ liệu Khám phá dữ liệu là một bước thực hiện trong quá trình làm sạch dữ liệu (Data cleaning). Không có lối tắt để khám phá dữ liệu. Khi làm việc với máy học, chúng ta sẽ nhận ra rằng chúng ta luôn phải vật lộn để cải thiện độ chính xác của mô hình.
Trong những tình huống như vậy, các kỹ thuật khám phá dữ liệu sẽ rất hữu ích. Chất lượng input sẽ quyết định đến chất lượng output. Thường việc khám phá dữ liệu, làm sạch và chuẩn hoá dữ liệu chiếm phần lớn thời gian của dự án (70% ~ 80%). HVTH: Nguyễn Tấn Lộc Trang 11 Xây dựng hệ thống khuyến nghị sản phẩm sử dụng máy học GVHD: PGS.TS Hồ Văn Khương Hình 2.3: Khám phá – làm sạch dữ liệu Các công việc cần làm trước tiên: a.
Xác định thuộc tính - biến (Variable – Identification) Để đảm bảo kết quả tốt cho một dự án, chúng ta cần hiểu rõ về phạm vi của dữ liệu. Để làm điều đó, chúng ra không chỉ cần biết về loại dữ liệu chúng ra có mà còn cần biết mối quan hệ giữa các thuộc tính, thuộc tính nào hữu ích và cách chúng thay đổi trong dữ liệu được cung cấp. Chúng ra cần thực hiện một số thử nghiệm khám phá ban đầu trên dữ liệu. Chúng ta cần tìm hiểu các kỹ thuật để khám phá và phân tích dữ liệu bằng cách xác định thuộc tính hữu ích cho kinh tế, tiếp thị, phân tích các chỉ số hiệu suất chính (KPIs – key performance indicators).
Đầu tiên, xác định các biến đầu vào (Predictor/Input) và biến đầu ra (Target/Output). Tiếp theo, xác định kiểu dữ liệu của các biến (Numberical Data, Categorical Data, Time Series Data, Text…). HVTH: Nguyễn Tấn Lộc Trang 12 Xây dựng hệ thống khuyến nghị sản phẩm sử dụng máy học GVHD: PGS.TS Hồ Văn Khương Hình 2.4: Kiểu dữ dữ liệu của các biến b. Phân tích đơn biến (Univariate Analysis) Phân tích dữ liệu đơn biến có nghĩa là chúng ta khám phá từng biến một.
Phương pháp để thực hiện phân tích đơn biến sẽ phụ thuộc vào loại biến là phân loại (categorical) hay liên tục (continuous). Continuous Variales: trong trường hợp các biến liên tục, các ta cần tìm hiểu xu hướng trung tâm và sự lây lan của các biến. HVTH: Nguyễn Tấn Lộc Trang 13 Xây dựng hệ thống khuyến nghị sản phẩm sử dụng máy học GVHD: PGS.TS Hồ Văn Khương Bảng 2.1: Các phương pháp trực quan số liệu thống kê Central Tendency Measure of Dispersion Visualization Mathods Mean Range Histogram Median Quartile Box Plot Mode IQR Min Variance Max Standard Deviation Skewness and Kurtosis Chú ý: Phân tích đơn biến cũng được sử dụng để làm nổi bật các giá trị bị thiếu và ngoại lệ. Categorical Variales: đối với các biến phân loại, chúng ta sử dụng bảng tần số để hiểu phân phối của từng loại, cũng có thể đọc theo tỷ lệ phần trăm của các giá trị theo từng danh mục.
Biến có thể được đếnm bằng value_counts() theo từng Category. Bar chart được dùng để trực quan dữ liệu. Phân tích hai biến (Bi-variate Analysis) Phân tích hai biến tìm ra mối quan hệ của hai biến: tìm kiếm sự liên kết (association) và không liên kết (disassociation) giữa các biến ở mức ý nghĩa được xác định trước. Chúng ta có thể thực hiện phân tích hai biến cho bất kỳ sự kết hợp nào của các biến phân loại và liên tục.
Sự kết hợp có thể là: Phân loại và phân loại, phân loại và liên tục, liên tục và liên tục. Các phương pháp khác nhau được sử dụng để giải quyết các kết hợp này trong quá trình phân tích. Liên tục và liên tục: khi phân tích hai biến liên tục, chúng ta nên xem xét biểu đồ phân tán. Đó là một cách phù hợp để tìm ra mối quan hệ của hai biến.
Mẫu biểu đồ phân tán biểu thị mối quan hệ giữa các biến. Mối quan hệ có thể là tuyến tính hay phi tuyến tính. HVTH: Nguyễn Tấn Lộc Trang 14 Xây dựng hệ thống khuyến nghị sản phẩm sử dụng máy học GVHD: PGS.TS Hồ Văn Khương Hình 2.5: Biểu đồ phân tán cho thấy mối quan hệ giữa hai biến Biểu đồ phân tán cho thấy mối quan hệ giữa hai biến nhưng không chỉ ra sức mạnh của mối quan hệ giữa chúng. Để tìm ra sức mạnh của mối quan hệ, cần dùng Correlation function.
Tương quan khác nhau giữa -1 và +1. ✓ -1: Tương quan tuyến tính âm hoàn hảo. ✓ +1: Tương quan tuyến tính dương hoàn hảo. ✓ 0 : Không tương quan.
Phân loại và phân loại: để tìm mối quan hệ giữa hai biến phân loại, chúng ta có thể sử dụng các phương pháp: Two-way table, Stacked Column Chart, Chi-Square Test,. Two-way table: Bắt đầu phân tích mối quan hệ bằng cách tạo bảng hai chiều Count. Các dòng đại diện cho category của một biến và các cột đại diện cho các loại của biến khác. Hiển thị Count của cá mẫu có sẵn trong mỗi kết hợp của các loại dòng và cột.
Stacked Column Chart: Biểu đồ xếp cột chồng là biểu đồ trực quan hoá dữ liệu của bảng 2 chiều. Chi-Square Test: Thử nghiệm này được sử dụng để rút ra ý nghĩa thống kê của mối quan hệ giữa các biến. Kiểm định chi bình phương được sử dụng được sử dụng khi chúng HVTH: Nguyễn Tấn Lộc Trang 15 Xây dựng hệ thống khuyến nghị sản phẩm sử dụng máy học GVHD: PGS.TS Hồ Văn Khương ta mối xem liệu có mối quan hệ giữa hai biến phân loại (categorical variables) trong một tổng thể hay không. Nó thường được sử dụng với dữ liệu phân loại như trình độ học vấn, màu sắc hoặc giới tính.
Ngoài ra, nó kiểm tra xem bằng chứng trong mẫu có đủ mạnh để khái quát mối quan hệ của một quần thể lớn hay không. Ví dụ, chúng ta quan tâm liệu có mối quan hệ giữa giới tính (gender) và loại hình doanh nghiệp (section) mà người lao động them giá làm việc hay không? Khi đó, giải thuyết của Chi-squared test được phát biểu như sau: ✓ ({H_0}): Biến gender và biến section là hai biến độc lập. ✓ ({H_1}): Biến gender và biến section không phải là hai biến độc lập. Chúng ta có thể giải thích test statisgic trong bối cảnh Chi-squared distribution với số lượng degress of freedom (dof) như sau: ✓ Nếu Statistic ≥ Critical Value: bác bỏ giải thuyết null (H0) => hai biến không độc lập.