1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo khoa học dữ liệu dự án phân loại hoa

20 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 3,2 MB

Nội dung

TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO KHOA HỌC DỮ LIỆU DỰ ÁN PHÂN LOẠI HOA STT NHÓM: 11 HỌ VÀ VIÊN TÊN LỚP SINH PHẦN Nguyễn Quốc Cường 20.13 Phạm Chính Hiệu 20.13 HỌC Giảng viên hướng dẫn: Phạm Công Thắng ĐÀ NẴNG, 05/2023 TĨM TẮT Nhóm chúng em dự định làm tiền xử lý liệu, phân loại hoa dựa mô hình thường gặp để có nhìn tổng qt phân loại hoa BẢNG PHÂN CÔNG NHIỆM VỤ Sinh viên thực Các nhiệm vụ Tự đánh giá theo mức (Đã hồn thành/Chưa hồn thành/Khơng triển khai) Nguyễn Quốc Cường Crawl liệu crawl ảnh Hoàn thành Mơ hình hố liệu Phạm Chính Hiệu Tiền xử lý liệu (lựa chọn Hoàn thành đặc trưng, làm liệu, chuẩn hoá liệu) Bảng 1: Bảng phân công nhiệm vụ MỤC LỤC DANH MỤC BẢNG DANH MỤC HÌNH ẢNH Giới thiệu Cách thực 2.1 Thu thập liệu 2.2 Trích xuất đặc trưng 2.3 Mơ hình hố liệu 11 2.3.1 Mơ hình CNN (Convolutional Neural Network) 11 2.3.1.1 Khái niệm 11 2.3.1.2 Cách làm 12 2.3.1.3 KẾT QUẢ 14 2.3.2 Mô hình KNN (K-Nearest Neighbor) 14 2.3.2.1 Khái niệm 14 2.3.2.2 Cách làm 15 2.3.2.3 2.3.3 Kết 15 Mơ hình Random Forest .15 2.3.3.1 Khái niệm 15 2.3.3.2 Cách làm 15 2.3.3.3 Kết 16 2.3.4 Mơ hình Naive Bayes 16 2.3.4.1 Khái niệm 16 2.3.4.2 Cách làm 17 2.3.4.3 2.3.5 Kết 18 Các đồ thị thể hiệu mơ hình .18 2.3.5.1 So sánh mô hình học máy (machine learning models) 18 2.3.5.2 Nhận xét mơ hình học sâu (Deep Learning) 20 DANH MỤC BẢNG Bảng 1: Bảng phân công nhiệm vụ DANH MỤC HÌNH ẢNH Hình 1: Mơ tả số lượng cho loại Hình 2: Làm liệu 10 Hình 3: Code chuẩn hoá liệu 10 Hình 4: Kết chuẩn hoá liệu .10 Hình 5: Kết giảm chiều liệu 12 Hình 6: Crawl-image lưu vào tệp Images 12 Hình 7: Lấy đường link ảnh 12 Hình 8: Dùng 10 mode để phân loại 13 Hình 9: Unzip Images Google Colab 13 Hình 10: Thư viện cần có chạy CNN 13 Hình 11: Chuyển ảnh từ JPG sang JPEG 13 Hình 12: Chia tập Train/Test/Validate 14 Hình 13: Kết CNN 14 Hình 14: Code mơ hình KNN 15 Hình 15:Kết mơ hình KNN 15 Hình 16: Code mơ hình RandomForest .16 Hình 17: Kết mơ hình RandomForest 17 Hình 18: Cơng thức Naive Bayes .17 Hình 19: Vecto đặc trưng mơ hình Naive Bayes 17 Hình 20: Cơng thức bayes đầy đủ 17 Hình 21: Code mơ hình Naive Bayes 18 Hình 22: Kết mơ hình Naive Bayes .18 Hình 23 So sánh mơ hình Random Forest Naive Bayes 19 Hình 24: So sánh mơ hình KNN Random Forest 20 Giới thiệu Dự đoán phân loại hoa tốn lĩnh vực học máy trí tuệ nhân tạo, sử dụng để phân loại loài hoa dựa đặc trưng chúng Các đặc trưng bao gồm thơng tin kích thước, hình dạng màu sắc hoa… Cách thực 2.1  Thu thập liệu  Nguồn liệu: https://www.gardenia.net/plants/plant-types/shrubs?page={i}  Cách thức thu thập:  Các đoạn code cho thấy cách thu thập liệu thông qua việc sử dụng thư viện BeautifulSoup Requests Python Hàm crawl lặp qua trang web, sử dụng requests.get() để lấy nội dung trang web, sau sử dụng thư viện BeautifulSoup để phân tích cú pháp HTML lấy liên kết trang web Hàm sử dụng số phương pháp để trích xuất thơng tin từ trang web liên kết, ví dụ lấy tên sản phẩm, thông tin bảng, đường dẫn ảnh sản phẩm Sau thu thập thông tin, hàm lưu trữ liệu vào tệp để sử dụng phần q trình phân tích liệu Do đó, cung cấp cách thức thu thập liệu tự động cách lấy thông tin từ trang web liên kết Thống kê mô tả trực quan liệu: Hình 1: Mơ tả số lượng cho loại 2.2   Trích xuất đặc trưng Lựa chọn đặc trưng: Các đặc trưng chọn để phân loại loại là: Hardiness, Climate Zones, Plant Family, Season of Interest, Min-Height(feet), Max-Height(feet), MinHeight(cm), Max-Height(cm), Characteristics, Soil Type Để lựa chọn đặc trưng cho toán phân loại loại cây, ta cần hiểu rõ đặc trưng ảnh hưởng đến trình phát triển khả sinh trưởng Bằng cách tìm hiểu phân tích đặc trưng liên quan đến loại cây, ta chọn đặc trưng quan trọng để sử dụng mơ hình phân loại Tuy nhiên, việc lựa chọn đặc trưng phụ thuộc vào mục đích sử dụng mơ hình, số lượng liệu có sẵn Làm liệu Loại bỏ hàng có giá trị rỗng phương thức dropna() Chia giá trị cột Height thành cột Min-Height(feet), MaxHeight(feet), Min-Height(cm), Max-Height(cm) phương thức apply() pd.Series() pandas Chia giá trị cột Spread thành cột Min-Spread(feet), MaxSpread(feet), Min-Spread(cm), Max-Spread(cm) phương thức apply() pd.Series() pandas Chia giá trị cột Hardiness thành cột Hardiness(Min) Hardiness(Max) phương thức apply() pd.Series() pandas Chuyển đổi kiểu liệu cột Soil pH sang kiểu số phương thức to_numeric() pandas Loại bỏ dấu phẩy giá trị cột Garden Uses Garden Styles để giúp việc xử lý liệu dễ dàng Loại bỏ khoảng trắng không cần thiết phương thức apply() lambda function pandas Loại bỏ ký tự đặc biệt chuyển đổi giá trị sang chữ thường để dễ dàng sử dụng tìm kiếm phương thức apply() lambda function pandas Thay ký tự đặc biệt cột Name rỗng Lưu liệu làm vào tập tin Shrubs_cleaned.csv phương thức to_csv() pandas Hình 2: Làm liệu  Chuẩn hóa liệu Việc chuẩn hóa liệu (data normalization) trình quan trọng việc xử lý liệu trước áp dụng thuật toán học máy, nhiều thuật tốn u cầu liệu chuẩn hóa phạm vi giá trị định để tăng hiệu thuật toán Trong đoạn code, thư viện scikit-learn sử dụng để thực chuẩn hóa Min-Max (MinMaxScaler) feature "Height" tập liệu "Shrubs.csv" Quá trình sử dụng giá trị tối thiểu tối đa feature để đưa phạm vi giá trị từ đến Hình 3: Code chuẩn hố liệu Kết quả: Hình 4: Kết chuẩn hoá liệu Các bước thực sau:         Đọc tập liệu từ file csv cách sử dụng hàm read_csv pandas Tạo instance MinMaxScaler Sử dụng phương thức fit_transform để chuẩn hóa feature "Height" Lưu trữ kết chuẩn hóa vào height_scaled Gán lại giá trị chuẩn hóa cho feature "Height" vào dfset In kết height_scaled để xem liệu chuẩn hóa Kết mảng numpy chứa giá trị chuẩn hóa, có kích thước với feature "Height" tập liệu gốc Giảm chiều liệu Thuật toán đươc dùng để giảm chiều liệu toán sử dụng PCA (Principal Component Analysis) PCA kỹ thuật giảm chiều liệu phổ biến để giảm số chiều tập liệu cách biến đổi thuộc tính ban đầu thành thành phần (principal components) mới, mà thành phần tính tốn dựa việc tối đa hóa phương sai liệu Các bước thực sau:  Đầu tiên, liệu đọc vào từ file 'Shrubs.csv' cột chọn để giảm chiều bao gồm 'Height', 'Spread', 'Water Needs', 'Soil pH', 'Soil Drainage' Các giá trị cột đưa dạng số nguyên hàm factorize pandas  Tiếp theo, giá trị bị thiếu cột áp đặt với giá trị trung bình giá trị có sẵn cột cách sử dụng lớp SimpleImputer scikit-learn  Sau đó, liệu giảm chiều xuống thành thành phần hàm PCA scikit-learn, giá trị thành phần lưu vào biến X_pca  Cuối cùng, giá trị liệu gốc, liệu sau áp đặt giá trị thiếu, liệu sau giảm chiều in hình để kiểm tra kết Qua đó, giảm chiều liệu giúp giảm số chiều liệu, từ giảm độ phức tạp tính tốn tăng tốc độ xử lý Tuy nhiên, việc giảm chiều liệu dẫn đến mát thông tin hiệu phương pháp giảm chiều phụ thuộc vào liệu mục đích sử dụng Hình 5: Kết giảm chiều liệu 2.3 Mơ hình hố liệu 2.3.1 Mơ hình CNN (Convolutional Neural Network) 2.3.1.1 Khái niệm - - Trong mạng neural, mơ hình mạng neural tích chập (CNN) mơ hình để nhận dạng phân loại hình ảnh Trong đó, xác định đối tượng nhận dạng khuôn mặt số lĩnh vực mà CNN sử dụng rộng rãi CNN phân loại hình ảnh cách lấy hình ảnh đầu vào, xử lý phân loại theo hạng mục định (Ví dụ: Chó, Mèo, Hổ, ) Máy tính coi hình ảnh đầu vào mảng pixel phụ thuộc vào độ phân giải hình ảnh Dựa độ phân giải hình ảnh, máy tính thấy H x W x D (H: Chiều cao, W: Chiều rộng, D: Độ dày) Ví dụ: Hình ảnh mảng ma trận RGB 6x6x3 (3 giá trị RGB) 2.3.1.2 Cách làm - Crawl ảnh cách dùng phương thức request Hình 6: Crawl-image lưu vào tệp Images - Lấy file theo src ảnh Hình 7: Lấy đường link ảnh - Trong folder Images, khoảng 3000 ảnh, chia thành 10 model khác - Nếu làm gg colab: unzip theo phương thức: Hình 8: Dùng 10 mode để phân loại Hình 9: Unzip Images Google Colab - Các thư viện cần có - Chuyển ảnh từ JPG sang JPEG Hình 10: Thư viện cần có chạy CNN Hình 11: Chuyển ảnh từ JPG sang JPEG - Chia tập Train/Test/Validate Hình 12: Chia tập Train/Test/Validate 2.3.1.3 KẾT QUẢ Hình 13: Kết CNN 2.3.2 Mơ hình KNN (K-Nearest Neighbor) 2.3.2.1 Khái niệm - - K-nearest neighbor thuật toán supervised-learning đơn giản (mà hiệu vài trường hợp) Machine Learning Khi training, thuật tốn khơng học điều từ liệu training (đây lý thuật toán xếp vào loại lazy learning), tính tốn thực cần dự đốn kết liệu K-nearest neighbor áp dụng vào hai loại tốn Supervised learning Classification Regression KNN cịn gọi thuật toán Instance-based hay Memorybased learning Với KNN, toán Classification, label điểm liệu (hay kết câu hỏi thi) suy trực tiếp từ K điểm liệu gần training set Label test data định major voting (bầu chọn theo số phiếu) điểm gần nhất, suy cách đánh trọng số khác cho điểm gần suy label Chi tiết nêu phần 2.3.2.2 Cách làm - Đầu tiên, chọn feature để huấn luyện mơ hình Sau đó, chọn target(label) để huấn luyện mơ hình Chia tỉ lệ train,test,validate theo tỉ lệ 6/2/2 Chọn k=3 Đánh giá tập train tập validate Hình 14: Code mơ hình KNN 2.3.2.3 Kết Hình 15:Kết mơ hình KNN 2.3.3 Mơ hình Random Forest 2.3.3.1 Khái niệm - - - Random ngẫu nhiên, Forest rừng, nên thuật tốn Random Forest xây dựng nhiều định thuật toán Decision Tree, nhiên định khác (có yếu tố random) Sau kết dự đốn tổng hợp từ định Ở bước huấn luyện xây dựng nhiều định, định khác (phần sau nói xây dựng nào) Sau bước dự đốn, với liệu mới, định từ xuống theo node điều kiện để dự đốn, sau kết cuối tổng hợp từ kết định 2.3.3.2 Cách làm - Đầu tiên, chọn feature để huấn luyện mơ hình Sau đó, chọn target(label) để huấn luyện mơ hình - Chia tỉ lệ train,test,validate theo tỉ lệ 6/2/2 Đánh giá tập train tập validate Thuật toán Random Forest gồm nhiều định, định có yếu tố ngẫu nhiên: + Lấy ngẫu nhiên liệu để xây dựng định + Lấy ngẫu nhiên thuộc tính để xây dựng định - Do định thuật tốn Random Forest khơng dùng tất liệu training, khơng dùng tất thuộc tính liệu để xây dựng nên dự đốn khơng tốt, mơ hình định khơng bị overfitting mà bị underfitting, hay nói cách khác mơ hình có high bias Tuy nhiên, kết cuối thuật toán Random Forest lại tổng hợp từ nhiều định, nên thông tin từ bổ sung thơng tin cho nhau, dẫn đến mơ hình có low bias low variance, hay mơ hình có kết dự đốn tốt Hình 16: Code mơ hình RandomForest 2.3.3.3 Kết Hình 17: Kết mơ hình RandomForest 2.3.4 Mơ hình Naive Bayes 2.3.4.1 Khái niệm Naive Bayes thuật tốn phân lớp mơ hình hoá dựa định lý Bayes xác suất thống kê: Hình 18: Cơng thức Naive Bayes đó: P(y|X) gọi posterior probability: xác suất mục tiêu y với điều kiện có đặc trưng X P(X|y) gọi likelihood: xác suất đặc trưng X biết mục tiêu y P(y) gọi prior probability mục tiêu y P(X) gọi prior probability đặc trưng X Ở đây, X vector đặc trưng, viết dạng: Hình 19: Vecto đặc trưng mơ hình Naive Bayes Khi đó, đẳng thức Bayes trở thành: Hình 20: Cơng thức bayes đầy đủ Trong mơ hình Naive Bayes, có hai giả thiết đặt ra: - Các đặc trưng đưa vào mơ hình độc lập với Tức thay đổi giá trị đặc trưng không ảnh hưởng đến đặc trưng cịn lại Các đặc trưng đưa vào mơ hình có ảnh hưởng ngang đầu mục tiêu 2.3.4.2 Cách làm - Đầu tiên, chọn feature để huấn luyện mơ hình Sau đó, chọn target(label) để huấn luyện mơ hình Chia tỉ lệ train,test,validate theo tỉ lệ 6/2/2 Đánh giá tập train tập validate Hình 21: Code mơ hình Naive Bayes 2.3.4.3 Kết Hình 22: Kết mơ hình Naive Bayes 2.3.5 Các đồ thị thể hiệu mơ hình 2.3.5.1 So sánh mơ hình học máy (machine learning models) Hình 23 So sánh mơ hình Random Forest Naive Bayes Nhận xét: - - Mơ hình Naive Bayes thường cho kết độ xác (accuracy) cao tập liệu kiểm tra (validation set), đặc biệt số lượng đặc trưng (features) lớn so với số lượng mẫu huấn luyện (training samples) Lý tính đơn giản hiệu mơ hình Naive Bayes, đặc biệt với toán phân loại văn bản, email spam, hay phân loại ảnh đơn giản Mơ hình Naive Bayes dựa giả thuyết độc lập đặc trưng (independence assumption), cho phép tính tốn xác suất đầu cho mẫu liệu cách tích chập xác suất điều kiện đặc trưng Việc tính tốn xác suất đơn giản nhanh chóng, khơng địi hỏi phức tạp tính tốn, đồng thời cho phép mơ hình đưa dự đốn với độ xác cao Hình 24: So sánh mơ hình KNN Random Forest Nhận xét: - - Thuật toán KNN (K-Nearest Neighbors) dựa việc xác định lớp điểm liệu dựa K điểm gần tập liệu huấn luyện KNN thuật toán phân loại đơn giản dễ hiểu, nhiên, khơng cho kết tốt số tập liệu, đặc biệt số lượng đặc trưng (features) lớn Có số ngun nhân khiến thuật tốn KNN cho kết phân loại không tốt - - Đầu tiên, K q nhỏ mơ hình bị ảnh hưởng nhiều điểm nhiễu (noise) tập liệu, làm giảm độ xác mơ hình Nếu K q lớn, mơ hình khơng cịn linh hoạt khả phân loại điểm liệu giảm Thứ hai, đặc trưng tập liệu khơng có mức độ quan trọng KNN khơng cho kết tốt Vì thuật tốn xác định khoảng cách điểm liệu cách tính tốn khoảng cách Euclid, khoảng cách Manhattan khoảng cách cosine vector đặc trưng Khoảng cách tính tốn tất đặc trưng, đó, số đặc trưng quan trọng so với đặc trưng khác khoảng cách tính tốn khơng phản ánh xác khác biệt điểm liệu Cuối cùng, tập liệu huấn luyện có cân lớp, thuật tốn KNN cho kết khơng tốt Khi lớp có số lượng mẫu liệu so với lớp khác, mơ hình KNN dễ dàng bị lệch phân loại cho lớp có số lượng mẫu nhiều 2.3.5.2 Nhận xét mơ hình học sâu (Deep Learning)

Ngày đăng: 29/06/2023, 10:12