Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 32 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
32
Dung lượng
2,25 MB
Nội dung
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA CƠNG NGHỆ THƠNG TIN BÁO CÁO THEO U CẦU Mơn học: Thực tập sở Giảng viên hỗ trợ: Trần Đình Quế Họ tên sinh viên: Nguyễn Cơng Hn Mã sinh viên: B19DCCN288 Lớp: D19CQCN12-B Hà Nội, ngày 14 tháng năm 2022 TRƯỚC KHI BẮT ĐẦU Báo cáo trích từ Introduction to Machine Learning with Python, viết Andreas C Müller Sarah Guido, trải qua lược dịch Một số định nghĩa, khái niệm tham khảo từ số trang web khác Các đoạn mã sử dụng báo cáo có sẵn trang GitHub nhắc tới tài liệu, em lấy phân tích Cũng tài liệu có đề cập đến Anaconda, phân phối Python kèm với phần mềm môi trường Spyder chuyên dùng lĩnh vực khoa học máy tính – khoa học liệu, Em có cài chúng máy tiến hành chạy thử, nhiên hiểu biết hạn hẹp, em xin phép sử dụng phương án thay tìm hiểu sâu trình/phần mềm Mong thầy thơng cảm! Các trình duyệt/phần mềm em dùng thay bao gồm: - Pycharm Community Edition: Trình IDE cơng ty JetBrains (CH Séc) tạo ra, chuyên ngôn ngữ lập trình Python hỗ trợ ngôn ngữ khác JavaScript, CSS… Bản Community Edition miễn phí, có hạn chế số chức cao cấp Đây nơi em chạy đoạn mã mà output - Jupyter Notebook: Một sản phẩm thuộc Project Jupyter (Jupyter Notebook, JupyterHub, JupyterLab), dự án mã nguồn mở (open-source) nhằm phát triển phần mềm mã nguồn mở, tiêu chuẩn mở (open-standards) dịch vụ nhằm mục tiêu kết nối thiết bị máy tính sử dụng nhiều ngơn ngữ lập trình khác Jupyter Notebook lấy nguồn gốc từ IPython, sáng lập Fernando Pérez Brian Granger năm 2014 Cái tên Jupyter bắt nguồn từ ngơn ngữ tạo nên Jupyter: Julia, Python R Đây nơi em chạy đoạn mã mà output lược đồ I Chương 2: Supervised learning – Kỹ thuật học có giám sát Mở đầu định nghĩa 1.1 Định nghĩa ban đầu Khái niệm kỹ thuật người đưa liệu đầu vào cho máy, đầu giá trị liên tục (hồi quy), dự đoán giá trị cho đối tượng đầu vào… dạng ln hàm Có hai loại học có giám sát: - Phân loại (Classification): Sử dụng thuật toán để điều liệu tới phân mục xác Chia thành phân loại nhị phân (binary classification) phân loại đa lớp (multiclass classification) – thực nhị phân trường hợp đặc biệt đa lớp cần phân loại lớp nhất, so với nhiều lớp trường hợp cịn lại Có thể so sánh việc phân loại nhị phân trả lời câu hỏi đúng/sai Phân loại có giám sát nhằm đưa dự đốn/kết luận liệu nên đưa vào lớp có sẵn vd Phân loại hoa => Đầu loại hoa Phân loại ngôn ngữ => Đầu ngôn ngữ - Hồi quy (Regression): Dùng để làm rõ mối quan hệ biến (đầu vào) phụ thuộc độc lập Như tên gọi nó, đầu hồi quy có giám sát giá trị liên tục (một số thực/số thập phân) vd Đưa dự đoán thu nhập nhân viên dựa vào trình độ giáo dục, tuổi nơi người => Một số Dự đốn diện tích khu ruộng dựa vào diện tích khu đất cũ, thời tiết số công nhân => Một số Các thuật tốn sử dụng mạng hệ thần kinh (neural network), phân lớp Bayes (Naïve Bayes), hồi quy tuyến tính (linear regression), hồi quy có logic (logistic regression), K người hàng xóm gần (K-nearest neighbors – thuật toán sử dụng Chương 1), … 1.2 Khai thác hóa, thừa thiếu thơng tin Nói cách khác, mục tiêu kỹ thuật học có giám sát xây dựng mơ hình (model) dựa liệu mẫu/huấn luyện, từ dự đốn xác liệu có kết cấu tương tự Đó gọi q trình khái thác hóa (generalize) từ liệu mẫu tới liệu thực Đương nhiên cỗ máy với mục đích dự đốn nên cần khái thác hóa với độ lệch Một khía cạnh khác xây dựng mơ hình việc đưa dự đoán từ đặc điểm liệu, hay độ phức tạp mơ hình Xét ví dụ việc khảo sát 50 sinh viên với mục tiêu “Sinh viên có muốn mua xe máy?”, người hỏi chuẩn bị sẵn tiêu đề: Khóa học – Nơi – Khoảng cách – Việc làm thêm (y/n) – Phương tiện khác => Nhu cầu Lẽ dĩ nhiên muốn mơ hình đơn giản - đưa dự đốn xác dựa đặc điểm liệu tốt Nếu sử dụng mệnh đề để mơ tả mơ hình cần dựng, có trường hợp sau: “Sinh viên nhà riêng, cách trường 10km có việc làm thêm xe buýt có nhu cầu mua xe máy” ==> Mơ hình thừa thơng tin/q phức tạp (overfitting), hoạt động tốt với liệu mẫu với liệu gặp vấn đề “Sinh viên năm có nhu cầu mua xe máy” ==> Mơ hình thiếu thơng tin/q đơn giản (underfitting), chí dự đoán sai đữ liệu mẫu Chúng ta cần “điểm ngọt” nằm hai cực này, cho kết khai thác hóa tốt Đây mệnh đề sử dụng để xây dựng mơ hình Ví dụ như: “Sinh viên cách trường 10km có việc làm thêm có nhu cầu mua xe máy.” Mối quan hệ độ xác khai thác hóa việc xây dựng mơ hình 1.3 Mối quan hệ kích thước liệu độ phức tạp mơ hình Giờ ví dụ trên, xét trường hợp sau: Người hỏi/phỏng vấn sử dụng nhiều tiêu chí (Tên sinh viên, tên lớp, thuộc tầng nào,…) Có nhiều sinh viên hỏi (dữ liệu mẫu 500 1000 sinh viên) Khi mệnh đề “Sinh viên nhà riêng, cách trường 10km có việc làm thêm xe buýt có nhu cầu mua xe máy” trường hợp lại coi tối ưu Dữ liệu mẫu lớn, mơ hình dùng chi tiết phức tạp mà không lo vấn đề tràn thông tin Các thuật tốn phổ biến ví dụ Ở phần có nhắc thuật tốn sử dụng nhiều q trình học có giám sát, phần thực hóa số thuật tốn ví dụ cụ thể Vì thời gian học có hạn nên em xin qua thuật toán K-người láng giềng gần thuật tốn tuyến tính 2.1 Phân loại hồi quy Với phân loại có giám sát, xét liệu mẫu forge - mẫu liệu phân loại đơn giản với class Tạo set liệu Tạo biểu đồ Trong yếu tố (feature) biểu diễn trục lược đồ Output đoạn code hình ảnh phía dưới: Dữ liệu mẫu bao gồm 26 điểm liệu, với lớp biểu diễn lược đồ phân tán Với kỹ thuật hồi quy có giám sát, sử dụng liệu mẫu wave Cũng dùng lược đồ ví dụ có trục yếu tố, trục lại biểu diễn giá trị mục tiêu hồi quy Giá trị ngoặc đơn dòng đoạn mã cao, lược đồ có nhiều chi tiết Bên cạnh hình ảnh đoạn mã tương tự với giá trị 2.2 K-người láng giềng gần 2.2.1 Phân loại Được coi thuật toán đơn giản cách dựng mơ hình dựa vào liệu đầu vào, sau đưa dự đốn qua việc tìm điểm liệu gần với điểm liệu ban đầu Xét liệu forge, thêm vào trước lệnh print dòng Trong ngoặc số “hàng xóm”, mặc định khơng có tức = Kết thu (trường hợp đặt giá trị = 3): Mỗi đánh dấu điểm liệu mới, đường thẳng nối điểm gần set liệu Dựa vào số điểm tương ứng với mà định ngơi thuộc lớp vd Ngơi góc bên trái đánh dấu thuộc class gần với “hàng xóm” class so với “hàng xóm” class Từ liệu mẫu trên, ta áp dụng thuật toán với lớp scikit-learn Chia liệu thành training test Thêm khai báo lớp + Lưu liệu training Đưa dự đoán láng giềng kiếm thử độ xác Kết quả: mảng với phần từ lớp dự đốn tỉ lệ xác dự đốn (làm tròn đến chữ số) Với số láng giếng xác định mơ hình có tỉ lệ dự đốn thành cơng Chúng ta xét số láng giềng thay đổi tỉ lệ thay đổi Áp dụng: Dữ liệu thống kê bệnh ung thư vú Wisconsin 10 So sánh trực tiếp hồi quy nhiều lần hồi quy tuyến tính Thuật tốn hồi quy nhiều lần ghi nhận kết sớm nhiều, kích thước mẫu đủ lớn, hồi quy tuyến tính – OLS bắt kịp c) Lasso Một cách tiếp cận khác hồi quy nhiều lần, với điểm khác biệt: sử dụng thuật toán này, số tiêu chí giá trị tuyệt đối, đồng nghĩa với việc bị mơ hình bỏ qua hồn tồn – điểm cộng việc mơ hình thường cài đặt đơn giản tập trung vào tiêu chí quan trọng Q trình gọi “khai thác hóa L1” Hàm Lasso() có biến số alpha tùy chỉnh Ngồi cịn biến số Để biết biến số này, ta quay lại với liệu mẫu nhà Boston: 18 Kết ban đầu tệ, chứng tỏ tình trạng underfitting (dùng 4/105 tiêu chí) Giảm alpha, đồng thời tăng tham số nằm hàm Lasso: max_iter (số phép lặp tối đa) Kết đạt tốt nhiều Nhưng đặt alpha q thấp… Mơ hình lại trở trạng thái overfitting hồi quy tuyến tính *) So sánh Ridge Lasso Ridge thường ưu tiên hơn, Lasso trở nên hữu dụng trường hợp liệu phức tạp người dùng tin có phần quan trọng và/hoặc muốn mơ hình dễ hiểu, dễ cài đặt Thêm vào lớp scikit-learn có ElasticNet, kết hợp thuật tốn hồi quy nói 2.3.2 Phân loại Phân loại tuyến tính dựa sở phương trình hồi quy tuyến tính, với điểm khác biệt nhỏ Xét trường hợp phân loại nhị phân (binary classification): 19 ŷ = w[0] * x[0] + w[1] * x[1] + + w[p] * x[p] + b > Thay trả giá trị dự đốn so sánh giá trị với kết luận thuộc lớp Chúng ta trở liệu mẫu forge: LogisticRegression thực hàm phân loại (classification), hồi quy (regression) Giá trị fill=False đặt mặc định Kết đường thẳng phân tách hai lớp liệu Cả làm tốt, dù chúng phân loại sai điểm Mặc định chúng sử dụng khái thác hóa L2, giống hồi quy Ridge Hai hàm sử dụng tham số C ngoặc (mặc định không ghi tức C = 1) định khái thác hóa; C cao khái thác hóa Tức với C thấp, thuật tốn cố gắng điều chỉnh cho tồn liệu, C cao giúp thuật toán tập trung phân loại điểm liệu Áp dụng thuật toán với liệu bệnh ung thư: 20 C=1 C = 200 C = 0.02 Với phân loại đa lớp, ngoại trừ LinearRegression, ta khơng có mơ hình trực tiếp Một cách tạo thuật toán phân loại đa lớp sử dụng cách tiếp cận one vs rest – tạo mơ hình nhị phân cho lớp riêng biệt, thành số mơ hình tương đương với số lớp Sau cho tồn mơ hình chạy, mơ hình hiệu thắng tên lớp liên quan trả kết dự đoán 2.3.3 Phân tích, đánh giá a) Những điểm cần lưu ý Chú ý đến tham số truyền vào mô hình tuyến tính: alpha hồi quy C LinearRegression LinearSVC Alpha lớn/C nhỏ đồng nghĩa với mô hình đơn giản Một điểm lựa chọn khái thác hóa L1/L2 L1 thường dùng cho liệu có số phần quan trọng/cần độ xác cao có thể, cịn lại mặc định người dùng nên sử dụng L2 21 b) Ưu điểm - Cài đặt, luyện tập nhanh - Thời gian kết luận thấp - Dễ hiểu - Dùng cho liệu phức tạp/lớn c) Nhược điểm - Các loại liệu đơn giản, chiều II Chương 3: Kỹ thuật học khơng có giám sát (Unsuprvised Learning) Định nghĩa phân loại Có loại học khơng giám sát phổ biến: - Thay đổi liệu (Transformation): Có ứng dụng thường dùng: Lấy loại liệu đa chiều, phức tạp, biến đổi thể liệu ban đầu thành dạng khác dễ hiểu (cho người máy), tập trung vào phần quan trọng Thường chuyển dạng liệu chiều cho mục đích quan sát Hoặc từ liệu ban đầu phân tích tìm thành phần cấu thành nên liệu Ví dụ tìm chủ đề nói tới báo - Phân tách cụm (Clustering): Chia liệu thành nhóm riêng biệt với thành phần Các thử thách so với học có giám sát Vấn đề lớn thuật tốn có học điều có ích cho hay khơng Dữ liệu dùng kỹ thuật khơng có tên hay tiêu đề nên xác định đầu Vì vậy, kỹ thuật nên sử dụng với mục đích tìm hiểu, thống kê liệu chuẩn bị trước cho việc tính tốn Và kể hiệu không chắn 22 Tiền chuẩn bị liệu điều chỉnh Thường kỹ phân tích liệu bản, chuẩn bị cho kỹ thuật học không giám sát thực Có nhiều kiểu phân tích liệu Chúng ta dùng thư viện scikit-learn để áp dụng cách phân tích Chuẩn bị liệu Fit liệu tiến hành biến đổi 23 Tiến hành in kích thước (x_train_scaled) so sánh liệu trước sau điều chỉnh Tương tự với cách làm xét liệu test: Giải thích cho việc mảng kết có phần từ nằm ngồi phạm vi [0, 1] MinMaxScaler dùng cách làm mà dùng cho liệu mẫu Giờ kiểm chứng hiểu việc tiền chuẩn bị liệu lên mơ hình SVC 24 Trước chuẩn bị Ví dụ chạy máy cá nhân nên kết khác Như thấy, kết sau phân tích liệu cịn tốt Chúng ta cịn thay thuật tốn phân tích, tất có cách vận hành gần Giả dụ dùng StandardScaler thay MinMaxScaler thư viện sklearn.preprocessing, kết không thay đổi nhiều Phân tích cụm Như nói định nghĩa, phân tích cụm hành động chia liệu thành nhóm với mục tiêu điểm nhóm có tính chất điểm nhóm 25 khác có tính chất khác Giống thuật tốn phân loại, thuật tốn phân tích cụm ghi nhận/ước lượng số tới điểm liệu, giúp phân loại nhóm dễ Có nhiều thuật tốn phân tích cụm như: K-means, phân cụm phân cấp, DBSCAN… Ở phần tập trung vào K-means, thuật toán phân cụm đơn giản sử dụng rộng rãi K-means phân liệu thành cụm khác cho liệu cụm có tính chất giống Ý tưởng thuật tốn hiểu tìm điểm đại diện cụm, với việc lặp lại hai bước: Gắn điểm liệu cho điểm đại diện gần nhất, sau thay đổi vị trí điểm đại diện cho bao qt tồn cụm Hình cho nhìn tổng quát cách thức thực K-means Thuật tốn K-means cịn dự đốn vùng cụm, hình 26 Giờ áp dụng thuật toán sử dụng scikit-learn Chuẩn bị liệu Mỗi điểm liệu x gắn giá trị cụm Vì gọi cụm, nên giá trị cụm rơi vào khoảng [0, 2] Cũng gán điểm liệu lệnh predict – kmeans.predict(x) Kết trả giống lệnh labels_ 27 Tạo lược đồ Các điểm liệu đại diện cụm gán kí hiệu tam giác lưu trữ tham số cluster_centers_ Chúng ta gọi nhiều/ít cụm Ví dụ ví dụ gọi cụm cụm: 28 Tuy nhiên, mơ hình có hạn chế định Mỗi cụm liệu xác định qua điểm đại diện chúng Các hình thể tạo nên từ mơ hình này, có dạng đơn giản xoay quanh điểm đại diện Các điểm coi ngang hàng cho cụm Điều dẫn đến kết bất ngờ: 29 Độ rải rác cụm khác Dữ liệu chiều với phần riêng biệt, với phần trải rộng theo đường chéo Kmeans tập trung vào khoảng cách gần với điểm đại diện => Nó khơng thể xử lý 30 Vì hình ảnh kết có khác so với ví dụ, lược đồ biểu diễn tồn hình điểm đại diện mang hình tam giác đánh dấu lại 31 K-means hoạt động tốt với liệu phức tạp, ví dụ liệu dạng two_moons (sử dụng thư viện moons thay blobs ví dụ trên) 32 ... phần Các thử thách so với học có giám sát Vấn đề lớn thuật tốn có học điều có ích cho hay khơng Dữ liệu dùng kỹ thuật khơng có tên hay tiêu đề nên xác định đầu Vì vậy, kỹ thuật nên sử dụng với mục... giản, chiều II Chương 3: Kỹ thuật học khơng có giám sát (Unsuprvised Learning) Định nghĩa phân loại Có loại học khơng giám sát phổ biến: - Thay đổi liệu (Transformation): Có ứng dụng thường dùng:... thông tin Các thuật tốn phổ biến ví dụ Ở phần có nhắc thuật tốn sử dụng nhiều q trình học có giám sát, phần thực hóa số thuật tốn ví dụ cụ thể Vì thời gian học có hạn nên em xin qua thuật toán K-người