Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 18 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
18
Dung lượng
1,22 MB
Nội dung
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG BÁO CÁO BÀI TẬP LỚN MƠN HỌC MÁY ĐỀ TÀI: Dự đốn tiện nghi khách sạn Gv hướng dẫn: ThS Ngô Văn Linh Sinh viên thực hiện: Đào Duy Hòa - 20151589 Vũ Đức Anh Tuấn - 20154153 Nguyễn Quốc Thái - 20153353 Hà nội, 11 tháng 5, 2019 MỤC LỤC I Mơ tả tốn II Phân tích tốn Yêu cầu toán Hướng tiếp cận 2.1 Cơ sở lý thuyết 2.2 Phương pháp Bag-of-Word 2.3 Phương pháp TF-IDF III Thực 3.1 Lấy liệu trang hotels.com 3.2 Trích chọn đặc trưng 13 3.3 Áp dụng giải thuật k-NN 14 3.4 Kết 14 3.4.1 Ma trận nhầm lẫn giải thuật KNN 15 3.4.2 Ma trận nhầm lẫn giải thuật Linear SVC 15 IV Đánh giá 16 I Mô tả toán Trang web hotels.com trang web tổng hợp dịch vụ khách sạn công cụ tìm kiếm để đặt chỗ Trên web có thơng tin khách sạn có xếp hạng khách sạn Những liệu, thông tin khách sạn trang hotels.com đầy đủ xác Bài tốn dự đốn tiện nghi khách sạn lấy liệu trang web hotels.com để phân tích, huấn luyện để dự đốn mức độ tiện nghi Các đánh giá thuộc mức khác 1-star, 1.5-star, 2-star, 2.5-star, 3-star, 3.5-star, 4-star, 4.5-star, 5-star Để làm giảm số lượng nhãn cần phân loại nên mức 1.5, 2.5, 3.5, 4.5 đưa mức 1, 2, 3, II Phân tích tốn u cầu tốn * Lấy liệu trang hotels.com mơ tả phòng ốc, dịch vụ khách sạn xếp hạng khách sạn * Trích chọn đặc trưng từ tập liệu lấy * Tiến hành huấn luyện tập liệu * Dự đoán mức độ tiện nghi khách sạn Hướng tiếp cận Mơ hình triển khai tốn: Thơng tin khách sạn trang hotels.com lấy Scrapy framework Dữ liệu gồm mô tả khách sạn, dịch vụ, … xếp hạng khách sạn Tập liệu lấy từ hotels.com gồm vị trí khách sạn, mơ tả phòng ốc, dịch vụ Các liệu liệu dạng văn Để trích chọn đặc trưng, lấy vector đặc trưng từ tập liệu, nhóm em có sử dụng phương pháp BagOf-Word, TF-IDF(Term Frequency-Inverse Document Frequency) Những phương pháp đưa từ, câu, đoạn văn dạng văn vector mà phần tử số Theo mơ hình triển khai toán, phạm vi toán thuộc lớp tốn học có giám sát (supervised learing) học máy Do đó, để dự đốn lớp chưa biết từ thuộc tính cho dựa vào tập liệu huấn luyện, nhóm em chọn thuật tốn K-NN 2.1 Cơ sở lý thuyết 2.1.1 Tổng quan Thuật toán K-Nearest Neighbor K-nearest neighbor thuật toán supervised-learning đơn giản KNN giải thuật phi tham số áp dụng cho hai loại toán Phân lớp(Classificaition) Hồi quy(Regression) K-NN phương pháp để phân lớp đối tượng dựa vào khoảng cách gần đối tượng cần xếp lớp tất đối tượng Training Data Thuật tốn K-NN mơ tả sau: Xác định giá trị tham số K (số láng giềng gần nhất) Tính khoảng cách đối tượng cần phân lớp (Query Point) với tất đối tượng training data (thường sử dụng khoảng Euclidean) Sắp xếp khoảng cách theo thứ tự tăng dần xác định K láng giềng gần với Query Point Lấy tất lớp K láng giềng gần xác định Dựa vào phần lớn lớp láng giềng gần để xác định lớp cho Query Point Một cách ngắn gọn, K-NN thuật tốn tìm đầu điểm liệu cách dựa thông tin K điểm liệu training set gần (K-lân cận), khơng quan tâm đến việc có vài điểm liệu điểm gần nhiễu Giải thuật K-NN cho toán phân lớp *Mỗi ví dụ học x biểu diễn thành phần: - Mơ tả ví dụ: x = (x1, x2, ,xn), xn ∈ R - Nhãn lớp: c ∈ C, với C tập nhãn lớp xác định trước * Giai đoạn học - Chỉ đơn giản lưu lại vector đặc trưng lớp nhãn tập ví dụ học: D * Giai đoạn phân lớp: k số người dùng chọn, test point phân lớp dựa vào lớp chiếm đa số k điểm gần với Để phân lớp cho ví dụ z: - Với ví dụ học x thuộc D, tính khoảng cách x z - Xác định tập NB(z) - láng giềng gần z → Gồm k ví dụ học D gần với z tính theo hàm khoảng cách d - Phân z vào lớp chiếm số đông số lớp ví dụ NB(z) * Ví dụ : Xét láng giềng gần nhất→Gán z vào lớp c2 Xét láng giềng gần nhất→Gán z vào lớp c1 Xét láng giềng gần nhất→Gán z vào lớp c1 2.1.2 Các vấn đề: - Hàm khoảng cách: Tùy vào tốn có cách chọn hàm khoảng cách riêng để phù hợp Khoảng cách thông thường sử dụng cho kiểu liệu liên tục khoảng cách Euclidean Còn kiểu liệu rời rạc, phân loại liệu text, sử dụng khoảng cách Hamming, overlap, … - Chọn tham số k: Lựa chọn tốt cho tham số k dựa vào liệu toán Nếu chọn k lớn giảm độ nhiễu điểm liệu phân lớp, phân cách lớp không rõ ràng Ngược lại, với k nhỏ dễ bị ảnh hưởng điểm liệu nhiễu 2.2 Phương pháp Bag-of-Word Bag of word model (BoW) mơ hình sử dụng xử lí ngơn ngữ tự nhiên giúp lọc tìm kiếm từ quan trọng đoạn văn bất kì, từ đưa đặc trưng giá trị đoạn văn Mỗi từ tương ứng với chiều không gian liệu, văn trở thành vector nhiều chiều, chiều có giá trị khơng âm Giá trị từ tính tần suất xuất từ văn Xét tập n văn D = {d1, d2, , dn} tập T = {t1, t2, , tn} tập từ riêng biệt trích từ tập văn D Mỗi văn biểu diễn thành vector m chiều: td = (tf(d, t1), tf(d, t2), tf(d, tm)) tf(d,ti) tần suất xuất ti văn d * Các vấn đề Bag-Of-Word: - Với tốn này, từ điền có nhiều 10 từ nhiều,, vector đặc trưng thu dài Một văn mô tả biểu diễn vector có số chiều lớn - Những từ lại mang thông tin qua trọng mà loại văn có Đây nhược điểm BoW Có phương pháp cải tiến khác giúp khắc phục nhược điểm có tên Term Frequency-Inverse Document Frequency (TF-IDF) dùng để xác định tầm quan trọng từ văn dựa toàn văn sở liệu 2.3 Phương pháp TF-IDF TF-IDF (Term frequency – inverse document frequency): Giúp thống kê từ đoạn từ trọng đoạn văn (hay trường liệu liệu này) Term frequency (TF) tần số xuất từ Số lần xuất từ so với số lần từ xuất nhiều nhất, giá trị khoảng từ [0,1] Cơng thức tính: f (t,d): Số lần xuât từ t đoạn d : Số lần xuất nhiều từ văn Inverse document frequency (IDF): Tấn số nghịch từ tập văn Cơng thức tính: |D|: Tổng số văn tập D |d ∈ D : t ∈ d|: Số văn chứa từ định, với điều kiện t xuất văn d (tf(t, d) khác 0) Giá trị IF-TDF = tf(t,d) x idf(t, D) Những từ xuất nhiều vản ( tf(t,d) cao ) văn khác (idf(t, D) cao ) (những từ có giá trị văn bản) giá trị IF-TDF cao III Thực 3.1 Lấy liệu trang hotels.com 3.1.1 Mơ hình Scrapy project gồm phần sau: Scrapy engine: Chịu tránh nhiệm điều khiển thành phần khác kích hoạt kiện có hành động cụ thể xảy Scheduler: Nhận requests từ Scrapy engine đẩy vào queue gọi chúng lại mà engine cần request chúng Download: Download trang web theo requests nhận chứa Scheduler Spiders: Phân tích thành phần trang web tải từ phần Download tiếp tục gửi requests cho engine kết thúc việc lấy items Item pipeline: Xử lí liệu sau Spiders trích xuất (như lưu trữ sở liệu hay in file) Luồng liệu Scrapy (The data flow) Engine mở tên miền, định Spider xử lí tên miền hỏi Spider URL dùng để lấy liệu Engine lấy URL từ Spider đặt lịch trình cho chúng Scheduler Engine hỏi Scheduler URL để lấy liệu Scheduler trả URL Engine sends URL tới Download Tải trang trang qua Download gửi Engine Engine nhận liệu tải đẩy vào Spider để xử lí Spider xử lí gửi tài ngun có vào Item Pipeline gửi yêu cầu tiếp tới Engine Tiếp tục lại bước Spider gửi tiếp liệu 3.1.2 Các thông tin khách sạn lấy trang hotels.com gồm có sau: Thơng tin khách sạn Các thuộc tính khách sạn lấy từ phần trang Mỗi thuộc tính liệt kê cột excel từ tính điểm qua TF-IDF để trở thành chiều giải thuật k-NN 3.2 Trích chọn đặc trưng Dữ liệu thu 4187 khách sạn từ thành phố lớn giới Hà nội, London, New York, Paris, TP HCM, có: - 88 khách sạn 1-star 993 khách sạn 2-star 2209 khách sạn 3-star 810 khách sạn 4-star 87 khách sạn 5-star Các cột liệu bao gồm: - Tên khách sạn Địa Số Số phòng Pets and Children Tiện nghi Các địa điểm tiếng gần Thuộc tính số phòng chuẩn hóa [0,1] cách chia số phòng cho số phòng khách sạn có số phòng lớn Các thuộc tính Pets and Children, Tiện nghi, địa điểm tiếng tiền xử lý đưa vector nhiều chiều nhờ phương pháp TF-IDF Bag of words Tiền xử lý: - Các từ đưa dạng chữ thường - Các từ phủ định not nối liền với từ nó: ví dụ Pets not allowed chuyển thành pets not_allowed - Loại bỏ ký tự không mong muốn * , (, ), -, - Các giá trị cột địa điểm tiếng nối liền lại Ví dụ: Lotte Center Hanoi => lotte_center_hanoi (các giá trị khoảng cách bị xóa đi) 3.3 Áp dụng giải thuật k-NN Việc chọn k cho toán phân lớp k-NN vấn đề quan trọng Sử dụng phương pháp Cross Validation chia tập liệu thành phần nhau, không giao Trong phần data để training phần để test Với tập liệu n = 4186 ghi, bậc n 65, ta tiến hành tìm k mà hàm đạt cực đại Nhận thấy với k = 31 hàm có cực đại với độ xác 0.68 3.4 Kết Kết đánh giá k vừa tìm k=31 3.4.1 Ma trận nhầm lẫn giải thuật KNN 3.4.2 Ma trận nhầm lẫn giải thuật Linear SVC Ngồi ra, nhóm em có cài đặt thử thêm thuật toán Linear SVC để so sánh kết với thuật tốn K-NN Độ xác thuật tốn Linear SVC 0.61 IV Đánh giá Ưu điểm: - Chi phí thấp cho q trình huấn luyện (chỉ việc lưu lại ví dụ học) - Hoạt động tốt với tốn phân loại gồm nhiều lớp → Khơng cần phải học c phân loại cho c lớp - Về mặt lý thuyết k-NN đạt khả phán đoán tối ưu gặp số điều kiện - Rất Linh động việc chọn hàm khoảng cách → Có thể dùng độ tương tự (similarity): cosine → Có thể dùng độ đo khác, chẳng hạn Kullback-Leibler divergence, Bregman divergence, … Nhược điểm: Trong trình k-NN hoạt động, phải tính tốn "khoảng cách" từ liệu cần xác định loại đến tất liệu tập huấn luyện (training set) ==> tập huấn luyện lớn, điều làm cho thời gian chạy chương trình lâu Ngồi ra, việc lưu toàn liệu nhớ ảnh hưởng tới hiệu K-NN TÀI LIỆU THAM KHẢO https://machinelearningcoban.com/ Các thư viện sử dụng: sklearn.neighbors.KneighborsClassifier sklearn.svm.LinearSVC, sklearn.feature_extraction.text.CountVectorizer, tfidfvectorizer https://docs.scrapy.org/en/latest/ ... hình triển khai tốn, phạm vi tốn thuộc lớp tốn học có giám sát (supervised learing) học máy Do đó, để dự đốn lớp chưa biết từ thuộc tính cho dựa vào tập liệu huấn luyện, nhóm em chọn thuật toán... sạn cơng cụ tìm kiếm để đặt chỗ Trên web có thơng tin khách sạn có xếp hạng khách sạn Những liệu, thông tin khách sạn trang hotels.com đầy đủ xác Bài toán dự đoán tiện nghi khách sạn lấy liệu trang... K láng giềng gần xác định Dựa vào phần lớn lớp láng giềng gần để xác định lớp cho Query Point Một cách ngắn gọn, K-NN thuật tốn tìm đầu điểm liệu cách dựa thông tin K điểm liệu training set gần