Raster sang vector trăn
Để bắt đầu sử dụng mã Python trong QGIS, chúng tôi sử dụng Bảng điều khiển Python. Nhấp vào Bảng điều khiển Python trong menu Plugins as hinh Show Bảng điều khiển Python sẽ được neo ở bên dưới cùng của cửa sổ QGIS như hình sau Trong Bảng điều khiển Python, bạn có thể gõ cú pháp Python. ví dụ để kiểm tra phiên bản Python chúng ta có thể sử dụng đoạn mã sau import sys print (sys.version) Nhập các mã trên trong Bảng điều khiển Python và nhấn Enter, bạn sẽ nhận được phiên bản Python và một số thông tin tương tự như hình sau Trong Bảng điều khiển, chúng ta chỉ cần nhập một dòng cú pháp hoặc mã và sau đó thực hiện nó. Mặc dù chúng ta có thể thực hiện một chức năng hoặc một quy trình lặp lại trong đó, nhưng sẽ rất khó để xử lý. Đó là lý do tại sao chúng tôi sử dụng Console chỉ với mục đích rút ngắn, giả định như để lấy một biến, đối tượng, danh sách,… Để mã hóa phức tạp hoặc dài, chúng tôi đang sử dụng trình soạn thảo. Để truy cập trình soạn thảo, chỉ cần nhấp vào biểu tượng giấy bằng cách sử dụng các biểu tượng như trong hình sau Trong hình trên có thể thấy một trình soạn thảo trống. Trong quá trình chỉnh sửa này, chúng tôi có thể viết mã và có thể được lưu cho mục đích tiếp theo Trong phần này, chúng tôi giới thiệu từ vựng học máy mà chúng tôi sử dụng trong suốt quá trình học scikit và đưa ra một ví dụ học tập đơn giản học máy. thiết lập vấn đềNói chung, một vấn đề học tập xem xét một tập hợp n mẫu dữ liệu và sau đó cố gắng dự đoán các thuộc tính của dữ liệu chưa biết. Nếu mỗi mẫu có nhiều hơn một số và, ví dụ, một mục nhập đa chiều (còn gọi là dữ liệu đa biến), nó được cho là có một số thuộc tính hoặc tính năng Các vấn đề học tập rơi vào một vài loại
Tập huấn luyện và tập kiểm tra Học máy là học một số thuộc tính của một tập dữ liệu và sau đó kiểm tra các thuộc tính đó với một tập dữ liệu khác. Một thực tế phổ biến trong học máy là đánh giá một thuật toán bằng cách chia một tập dữ liệu thành hai. Chúng tôi gọi một trong những tập hợp đó là tập huấn luyện, trên đó chúng tôi tìm hiểu một số thuộc tính; Đang tải tập dữ liệu mẫu>>> print(digits.data) [[ 0. 0. 5. .. 0. 0. 0.] [ 0. 0. 0. .. 10. 0. 0.] [ 0. 0. 0. .. 16. 9. 0.] ... [ 0. 0. 1. .. 6. 0. 0.] [ 0. 0. 2. .. 12. 0. 0.] [ 0. 0. 10. .. 12. 1. 0.]]3 đi kèm với một vài bộ dữ liệu tiêu chuẩn, chẳng hạn như bộ dữ liệu mống mắt và chữ số để phân loại và bộ dữ liệu bệnh tiểu đường để hồi quy Trong phần sau, chúng tôi bắt đầu trình thông dịch Python từ trình bao của chúng tôi và sau đó tải bộ dữ liệu >>> print(digits.data) [[ 0. 0. 5. .. 0. 0. 0.] [ 0. 0. 0. .. 10. 0. 0.] [ 0. 0. 0. .. 16. 9. 0.] ... [ 0. 0. 1. .. 6. 0. 0.] [ 0. 0. 2. .. 12. 0. 0.] [ 0. 0. 10. .. 12. 1. 0.]]4 và >>> print(digits.data) [[ 0. 0. 5. .. 0. 0. 0.] [ 0. 0. 0. .. 10. 0. 0.] [ 0. 0. 0. .. 16. 9. 0.] ... [ 0. 0. 1. .. 6. 0. 0.] [ 0. 0. 2. .. 12. 0. 0.] [ 0. 0. 10. .. 12. 1. 0.]]5. Quy ước công chứng của chúng tôi là >>> print(digits.data) [[ 0. 0. 5. .. 0. 0. 0.] [ 0. 0. 0. .. 10. 0. 0.] [ 0. 0. 0. .. 16. 9. 0.] ... [ 0. 0. 1. .. 6. 0. 0.] [ 0. 0. 2. .. 12. 0. 0.] [ 0. 0. 10. .. 12. 1. 0.]]6 biểu thị dấu nhắc hệ vỏ trong khi >>> print(digits.data) [[ 0. 0. 5. .. 0. 0. 0.] [ 0. 0. 0. .. 10. 0. 0.] [ 0. 0. 0. .. 16. 9. 0.] ... [ 0. 0. 1. .. 6. 0. 0.] [ 0. 0. 2. .. 12. 0. 0.] [ 0. 0. 10. .. 12. 1. 0.]]7 biểu thị dấu nhắc trình thông dịch Python $ python >>> from sklearn import datasets >>> iris = datasets.load_iris() >>> digits = datasets.load_digits() Tập dữ liệu là một đối tượng giống như từ điển chứa tất cả dữ liệu và một số siêu dữ liệu về dữ liệu. Dữ liệu này được lưu trữ trong thành viên >>> print(digits.data) [[ 0. 0. 5. .. 0. 0. 0.] [ 0. 0. 0. .. 10. 0. 0.] [ 0. 0. 0. .. 16. 9. 0.] ... [ 0. 0. 1. .. 6. 0. 0.] [ 0. 0. 2. .. 12. 0. 0.] [ 0. 0. 10. .. 12. 1. 0.]]8, là một mảng >>> print(digits.data) [[ 0. 0. 5. .. 0. 0. 0.] [ 0. 0. 0. .. 10. 0. 0.] [ 0. 0. 0. .. 16. 9. 0.] ... [ 0. 0. 1. .. 6. 0. 0.] [ 0. 0. 2. .. 12. 0. 0.] [ 0. 0. 10. .. 12. 1. 0.]]9. Trong trường hợp các vấn đề được giám sát, một hoặc nhiều biến phản hồi được lưu trữ trong thành viên >>> digits.target array([0, 1, 2, ..., 8, 9, 8])0. Thông tin chi tiết về các bộ dữ liệu khác nhau có thể được tìm thấy trong Chẳng hạn, trong trường hợp tập dữ liệu chữ số, >>> digits.target array([0, 1, 2, ..., 8, 9, 8])1 cấp quyền truy cập vào các tính năng có thể được sử dụng để phân loại các mẫu chữ số >>> print(digits.data) [[ 0. 0. 5. .. 0. 0. 0.] [ 0. 0. 0. .. 10. 0. 0.] [ 0. 0. 0. .. 16. 9. 0.] ... [ 0. 0. 1. .. 6. 0. 0.] [ 0. 0. 2. .. 12. 0. 0.] [ 0. 0. 10. .. 12. 1. 0.]] và >>> digits.target array([0, 1, 2, ..., 8, 9, 8])2 đưa ra sự thật cơ bản cho tập dữ liệu chữ số, đó là số tương ứng với mỗi hình ảnh chữ số mà chúng tôi đang cố gắng tìm hiểu >>> digits.target array([0, 1, 2, ..., 8, 9, 8]) Hình dạng của mảng dữ liệu Dữ liệu luôn là mảng 2D, hình dạng >>> digits.target array([0, 1, 2, ..., 8, 9, 8])3, mặc dù dữ liệu gốc có thể có hình dạng khác. Trong trường hợp các chữ số, mỗi mẫu ban đầu là một hình ảnh có hình dạng >>> digits.target array([0, 1, 2, ..., 8, 9, 8])4 và có thể được truy cập bằng cách sử dụng >>> digits.images[0] array([[ 0., 0., 5., 13., 9., 1., 0., 0.], [ 0., 0., 13., 15., 10., 15., 5., 0.], [ 0., 3., 15., 2., 0., 11., 8., 0.], [ 0., 4., 12., 0., 0., 8., 8., 0.], [ 0., 5., 8., 0., 0., 9., 8., 0.], [ 0., 4., 11., 0., 1., 12., 7., 0.], [ 0., 2., 14., 5., 10., 12., 0., 0.], [ 0., 0., 6., 13., 10., 0., 0., 0.]]) Minh họa cách bắt đầu từ vấn đề ban đầu, người ta có thể định hình dữ liệu để sử dụng trong scikit-learning Đang tải từ bộ dữ liệu bên ngoài Để tải từ tập dữ liệu bên ngoài, vui lòng tham khảo Học tập và dự đoánTrong trường hợp tập dữ liệu chữ số, nhiệm vụ là dự đoán, cho trước một hình ảnh, nó đại diện cho chữ số nào. Chúng tôi được cung cấp các mẫu của mỗi trong số 10 lớp có thể (các chữ số từ 0 đến 9) trên đó chúng tôi phù hợp với một công cụ ước tính để có thể dự đoán các lớp mà các mẫu không nhìn thấy thuộc về Trong scikit-learning, một công cụ ước tính để phân loại là một đối tượng Python thực hiện các phương thức >>> digits.target array([0, 1, 2, ..., 8, 9, 8])5 và >>> digits.target array([0, 1, 2, ..., 8, 9, 8])6 Một ví dụ về công cụ ước tính là lớp >>> digits.target array([0, 1, 2, ..., 8, 9, 8])7, thực hiện phân loại vectơ hỗ trợ. Hàm tạo của công cụ ước tính lấy các tham số của mô hình làm đối số Bây giờ, chúng tôi sẽ coi công cụ ước tính là một hộp đen >>> from sklearn import svm >>> clf = svm.SVC(gamma=0.001, C=100.) Lựa chọn các thông số của mô hình Trong ví dụ này, chúng tôi đặt giá trị của >>> digits.target array([0, 1, 2, ..., 8, 9, 8])8 theo cách thủ công. Để tìm giá trị tốt cho các tham số này, chúng ta có thể sử dụng các công cụ như và Phiên bản ước tính >>> digits.target array([0, 1, 2, ..., 8, 9, 8])9 (đối với bộ phân loại) lần đầu tiên được trang bị cho mô hình; . Điều này được thực hiện bằng cách chuyển tập huấn luyện của chúng ta sang phương thức >>> digits.images[0] array([[ 0., 0., 5., 13., 9., 1., 0., 0.], [ 0., 0., 13., 15., 10., 15., 5., 0.], [ 0., 3., 15., 2., 0., 11., 8., 0.], [ 0., 4., 12., 0., 0., 8., 8., 0.], [ 0., 5., 8., 0., 0., 9., 8., 0.], [ 0., 4., 11., 0., 1., 12., 7., 0.], [ 0., 2., 14., 5., 10., 12., 0., 0.], [ 0., 0., 6., 13., 10., 0., 0., 0.]])0. Đối với tập huấn luyện, chúng tôi sẽ sử dụng tất cả các hình ảnh từ tập dữ liệu của mình, ngoại trừ hình ảnh cuối cùng mà chúng tôi sẽ dự đoán. Chúng tôi chọn tập huấn luyện với cú pháp Python >>> digits.images[0] array([[ 0., 0., 5., 13., 9., 1., 0., 0.], [ 0., 0., 13., 15., 10., 15., 5., 0.], [ 0., 3., 15., 2., 0., 11., 8., 0.], [ 0., 4., 12., 0., 0., 8., 8., 0.], [ 0., 5., 8., 0., 0., 9., 8., 0.], [ 0., 4., 11., 0., 1., 12., 7., 0.], [ 0., 2., 14., 5., 10., 12., 0., 0.], [ 0., 0., 6., 13., 10., 0., 0., 0.]])1, cú pháp này tạo ra một mảng mới chứa tất cả trừ mục cuối cùng từ >>> digits.target array([0, 1, 2, ..., 8, 9, 8])1 >>> clf.fit(digits.data[:-1], digits.target[:-1]) SVC(C=100.0, gamma=0.001) Bây giờ bạn có thể dự đoán các giá trị mới. Trong trường hợp này, bạn sẽ dự đoán bằng cách sử dụng hình ảnh cuối cùng từ >>> digits.target array([0, 1, 2, ..., 8, 9, 8])1. Bằng cách dự đoán, bạn sẽ xác định hình ảnh từ tập huấn luyện phù hợp nhất với hình ảnh cuối cùng >>> clf.predict(digits.data[-1:]) array([8]) Hình ảnh tương ứng là Như bạn có thể thấy, đó là một nhiệm vụ đầy thách thức. Rốt cuộc, hình ảnh có độ phân giải kém. Bạn có đồng ý với bộ phân loại không? Một ví dụ đầy đủ về vấn đề phân loại này có sẵn như là một ví dụ mà bạn có thể chạy và nghiên cứu. quy ướccác công cụ ước tính scikit-learning tuân theo các quy tắc nhất định để làm cho hành vi của họ dễ đoán hơn. Chúng được mô tả chi tiết hơn trong loại đúcNếu có thể, đầu vào loại >>> digits.images[0] array([[ 0., 0., 5., 13., 9., 1., 0., 0.], [ 0., 0., 13., 15., 10., 15., 5., 0.], [ 0., 3., 15., 2., 0., 11., 8., 0.], [ 0., 4., 12., 0., 0., 8., 8., 0.], [ 0., 5., 8., 0., 0., 9., 8., 0.], [ 0., 4., 11., 0., 1., 12., 7., 0.], [ 0., 2., 14., 5., 10., 12., 0., 0.], [ 0., 0., 6., 13., 10., 0., 0., 0.]])4 sẽ duy trì loại dữ liệu của nó. Nếu không, đầu vào sẽ được chuyển thành >>> digits.images[0] array([[ 0., 0., 5., 13., 9., 1., 0., 0.], [ 0., 0., 13., 15., 10., 15., 5., 0.], [ 0., 3., 15., 2., 0., 11., 8., 0.], [ 0., 4., 12., 0., 0., 8., 8., 0.], [ 0., 5., 8., 0., 0., 9., 8., 0.], [ 0., 4., 11., 0., 1., 12., 7., 0.], [ 0., 2., 14., 5., 10., 12., 0., 0.], [ 0., 0., 6., 13., 10., 0., 0., 0.]])5 >>> import numpy as np >>> from sklearn import kernel_approximation >>> rng = np.random.RandomState(0) >>> X = rng.rand(10, 2000) >>> X = np.array(X, dtype='float32') >>> X.dtype dtype('float32') >>> transformer = kernel_approximation.RBFSampler() >>> X_new = transformer.fit_transform(X) >>> X_new.dtype dtype('float32') Trong ví dụ này, >>> digits.images[0] array([[ 0., 0., 5., 13., 9., 1., 0., 0.], [ 0., 0., 13., 15., 10., 15., 5., 0.], [ 0., 3., 15., 2., 0., 11., 8., 0.], [ 0., 4., 12., 0., 0., 8., 8., 0.], [ 0., 5., 8., 0., 0., 9., 8., 0.], [ 0., 4., 11., 0., 1., 12., 7., 0.], [ 0., 2., 14., 5., 10., 12., 0., 0.], [ 0., 0., 6., 13., 10., 0., 0., 0.]])6 là >>> digits.images[0] array([[ 0., 0., 5., 13., 9., 1., 0., 0.], [ 0., 0., 13., 15., 10., 15., 5., 0.], [ 0., 3., 15., 2., 0., 11., 8., 0.], [ 0., 4., 12., 0., 0., 8., 8., 0.], [ 0., 5., 8., 0., 0., 9., 8., 0.], [ 0., 4., 11., 0., 1., 12., 7., 0.], [ 0., 2., 14., 5., 10., 12., 0., 0.], [ 0., 0., 6., 13., 10., 0., 0., 0.]])4 và không thay đổi bởi >>> digits.images[0] array([[ 0., 0., 5., 13., 9., 1., 0., 0.], [ 0., 0., 13., 15., 10., 15., 5., 0.], [ 0., 3., 15., 2., 0., 11., 8., 0.], [ 0., 4., 12., 0., 0., 8., 8., 0.], [ 0., 5., 8., 0., 0., 9., 8., 0.], [ 0., 4., 11., 0., 1., 12., 7., 0.], [ 0., 2., 14., 5., 10., 12., 0., 0.], [ 0., 0., 6., 13., 10., 0., 0., 0.]])8 Sử dụng dữ liệu đào tạo (hoặc thử nghiệm) được đánh máy theo kiểu >>> digits.images[0] array([[ 0., 0., 5., 13., 9., 1., 0., 0.], [ 0., 0., 13., 15., 10., 15., 5., 0.], [ 0., 3., 15., 2., 0., 11., 8., 0.], [ 0., 4., 12., 0., 0., 8., 8., 0.], [ 0., 5., 8., 0., 0., 9., 8., 0.], [ 0., 4., 11., 0., 1., 12., 7., 0.], [ 0., 2., 14., 5., 10., 12., 0., 0.], [ 0., 0., 6., 13., 10., 0., 0., 0.]])4 thường hiệu quả hơn so với sử dụng thông thường >>> digits.images[0] array([[ 0., 0., 5., 13., 9., 1., 0., 0.], [ 0., 0., 13., 15., 10., 15., 5., 0.], [ 0., 3., 15., 2., 0., 11., 8., 0.], [ 0., 4., 12., 0., 0., 8., 8., 0.], [ 0., 5., 8., 0., 0., 9., 8., 0.], [ 0., 4., 11., 0., 1., 12., 7., 0.], [ 0., 2., 14., 5., 10., 12., 0., 0.], [ 0., 0., 6., 13., 10., 0., 0., 0.]])5 >>> from sklearn import svm >>> clf = svm.SVC(gamma=0.001, C=100.)1. nó cho phép giảm mức sử dụng bộ nhớ và đôi khi cũng giảm thời gian xử lý bằng cách tận dụng các hướng dẫn vectơ của CPU. Tuy nhiên, đôi khi nó có thể dẫn đến các vấn đề về độ ổn định số khiến thuật toán nhạy cảm hơn với tỷ lệ của các giá trị và Tuy nhiên, hãy nhớ rằng không phải tất cả các công cụ ước tính scikit-learning đều cố gắng hoạt động ở chế độ >>> digits.images[0] array([[ 0., 0., 5., 13., 9., 1., 0., 0.], [ 0., 0., 13., 15., 10., 15., 5., 0.], [ 0., 3., 15., 2., 0., 11., 8., 0.], [ 0., 4., 12., 0., 0., 8., 8., 0.], [ 0., 5., 8., 0., 0., 9., 8., 0.], [ 0., 4., 11., 0., 1., 12., 7., 0.], [ 0., 2., 14., 5., 10., 12., 0., 0.], [ 0., 0., 6., 13., 10., 0., 0., 0.]])4. Chẳng hạn, một số máy biến áp sẽ luôn truyền đầu vào tới >>> digits.images[0] array([[ 0., 0., 5., 13., 9., 1., 0., 0.], [ 0., 0., 13., 15., 10., 15., 5., 0.], [ 0., 3., 15., 2., 0., 11., 8., 0.], [ 0., 4., 12., 0., 0., 8., 8., 0.], [ 0., 5., 8., 0., 0., 9., 8., 0.], [ 0., 4., 11., 0., 1., 12., 7., 0.], [ 0., 2., 14., 5., 10., 12., 0., 0.], [ 0., 0., 6., 13., 10., 0., 0., 0.]])5 và kết quả là trả về các giá trị được biến đổi >>> digits.images[0] array([[ 0., 0., 5., 13., 9., 1., 0., 0.], [ 0., 0., 13., 15., 10., 15., 5., 0.], [ 0., 3., 15., 2., 0., 11., 8., 0.], [ 0., 4., 12., 0., 0., 8., 8., 0.], [ 0., 5., 8., 0., 0., 9., 8., 0.], [ 0., 4., 11., 0., 1., 12., 7., 0.], [ 0., 2., 14., 5., 10., 12., 0., 0.], [ 0., 0., 6., 13., 10., 0., 0., 0.]])5 Các mục tiêu hồi quy được chuyển thành >>> digits.images[0] array([[ 0., 0., 5., 13., 9., 1., 0., 0.], [ 0., 0., 13., 15., 10., 15., 5., 0.], [ 0., 3., 15., 2., 0., 11., 8., 0.], [ 0., 4., 12., 0., 0., 8., 8., 0.], [ 0., 5., 8., 0., 0., 9., 8., 0.], [ 0., 4., 11., 0., 1., 12., 7., 0.], [ 0., 2., 14., 5., 10., 12., 0., 0.], [ 0., 0., 6., 13., 10., 0., 0., 0.]])5 và các mục tiêu phân loại được duy trì >>> from sklearn import datasets >>> from sklearn.svm import SVC >>> iris = datasets.load_iris() >>> clf = SVC() >>> clf.fit(iris.data, iris.target) SVC() >>> list(clf.predict(iris.data[:3])) [0, 0, 0] >>> clf.fit(iris.data, iris.target_names[iris.target]) SVC() >>> list(clf.predict(iris.data[:3])) ['setosa', 'setosa', 'setosa'] Ở đây, >>> from sklearn import svm >>> clf = svm.SVC(gamma=0.001, C=100.)6 đầu tiên trả về một mảng số nguyên, vì >>> from sklearn import svm >>> clf = svm.SVC(gamma=0.001, C=100.)7 (một mảng số nguyên) đã được sử dụng trong >>> digits.images[0] array([[ 0., 0., 5., 13., 9., 1., 0., 0.], [ 0., 0., 13., 15., 10., 15., 5., 0.], [ 0., 3., 15., 2., 0., 11., 8., 0.], [ 0., 4., 12., 0., 0., 8., 8., 0.], [ 0., 5., 8., 0., 0., 9., 8., 0.], [ 0., 4., 11., 0., 1., 12., 7., 0.], [ 0., 2., 14., 5., 10., 12., 0., 0.], [ 0., 0., 6., 13., 10., 0., 0., 0.]])0. >>> from sklearn import svm >>> clf = svm.SVC(gamma=0.001, C=100.)6 thứ hai trả về một mảng chuỗi, vì >>> clf.fit(digits.data[:-1], digits.target[:-1]) SVC(C=100.0, gamma=0.001)0 là để khớp Sửa chữa và cập nhật các thông sốCác siêu tham số của công cụ ước tính có thể được cập nhật sau khi nó được xây dựng thông qua phương thức. Gọi >>> clf.fit(digits.data[:-1], digits.target[:-1]) SVC(C=100.0, gamma=0.001)1 nhiều lần sẽ ghi đè lên những gì đã học được bởi bất kỳ >>> clf.fit(digits.data[:-1], digits.target[:-1]) SVC(C=100.0, gamma=0.001)1 nào trước đó >>> import numpy as np >>> from sklearn.datasets import load_iris >>> from sklearn.svm import SVC >>> X, y = load_iris(return_X_y=True) >>> clf = SVC() >>> clf.set_params(kernel='linear').fit(X, y) SVC(kernel='linear') >>> clf.predict(X[:5]) array([0, 0, 0, 0, 0]) >>> clf.set_params(kernel='rbf').fit(X, y) SVC() >>> clf.predict(X[:5]) array([0, 0, 0, 0, 0]) Ở đây, hạt nhân mặc định >>> clf.fit(digits.data[:-1], digits.target[:-1]) SVC(C=100.0, gamma=0.001)3 lần đầu tiên được thay đổi thành >>> clf.fit(digits.data[:-1], digits.target[:-1]) SVC(C=100.0, gamma=0.001)4 sau khi bộ ước tính đã được xây dựng và được thay đổi trở lại thành >>> clf.fit(digits.data[:-1], digits.target[:-1]) SVC(C=100.0, gamma=0.001)3 để điều chỉnh lại bộ ước tính và đưa ra dự đoán thứ hai Đa lớp vs. lắp nhiều nhãnKhi sử dụng, nhiệm vụ học tập và dự đoán được thực hiện phụ thuộc vào định dạng của dữ liệu đích phù hợp với >>> print(digits.data) [[ 0. 0. 5. .. 0. 0. 0.] [ 0. 0. 0. .. 10. 0. 0.] [ 0. 0. 0. .. 16. 9. 0.] ... [ 0. 0. 1. .. 6. 0. 0.] [ 0. 0. 2. .. 12. 0. 0.] [ 0. 0. 10. .. 12. 1. 0.]]0 Trong trường hợp trên, bộ phân loại phù hợp với một mảng 1d của các nhãn đa lớp và do đó, phương thức >>> from sklearn import svm >>> clf = svm.SVC(gamma=0.001, C=100.)6 cung cấp các dự đoán đa lớp tương ứng. Nó cũng có thể phù hợp với một mảng 2d của các chỉ báo nhãn nhị phân >>> print(digits.data) [[ 0. 0. 5. .. 0. 0. 0.] [ 0. 0. 0. .. 10. 0. 0.] [ 0. 0. 0. .. 16. 9. 0.] ... [ 0. 0. 1. .. 6. 0. 0.] [ 0. 0. 2. .. 12. 0. 0.] [ 0. 0. 10. .. 12. 1. 0.]]1 Ở đây, bộ phân loại là >>> clf.fit(digits.data[:-1], digits.target[:-1]) SVC(C=100.0, gamma=0.001)1 trên biểu diễn nhãn nhị phân 2d của >>> clf.predict(digits.data[-1:]) array([8])0, sử dụng. Trong trường hợp này, >>> from sklearn import svm >>> clf = svm.SVC(gamma=0.001, C=100.)6 trả về một mảng 2d biểu thị các dự đoán đa nhãn tương ứng Lưu ý rằng phiên bản thứ tư và thứ năm trả về tất cả các số 0, cho biết rằng chúng không khớp với nhãn nào trong ba nhãn >>> digits.images[0] array([[ 0., 0., 5., 13., 9., 1., 0., 0.], [ 0., 0., 13., 15., 10., 15., 5., 0.], [ 0., 3., 15., 2., 0., 11., 8., 0.], [ 0., 4., 12., 0., 0., 8., 8., 0.], [ 0., 5., 8., 0., 0., 9., 8., 0.], [ 0., 4., 11., 0., 1., 12., 7., 0.], [ 0., 2., 14., 5., 10., 12., 0., 0.], [ 0., 0., 6., 13., 10., 0., 0., 0.]])0 khi. Với đầu ra nhiều nhãn, tương tự như vậy, một phiên bản có thể được gán nhiều nhãn >>> print(digits.data) [[ 0. 0. 5. .. 0. 0. 0.] [ 0. 0. 0. .. 10. 0. 0.] [ 0. 0. 0. .. 16. 9. 0.] ... [ 0. 0. 1. .. 6. 0. 0.] [ 0. 0. 2. .. 12. 0. 0.] [ 0. 0. 10. .. 12. 1. 0.]]2 Trong trường hợp này, trình phân loại phù hợp với các trường hợp từng được gán nhiều nhãn. Được sử dụng để nhị phân hóa mảng 2d của nhiều nhãn thành >>> digits.images[0] array([[ 0., 0., 5., 13., 9., 1., 0., 0.], [ 0., 0., 13., 15., 10., 15., 5., 0.], [ 0., 3., 15., 2., 0., 11., 8., 0.], [ 0., 4., 12., 0., 0., 8., 8., 0.], [ 0., 5., 8., 0., 0., 9., 8., 0.], [ 0., 4., 11., 0., 1., 12., 7., 0.], [ 0., 2., 14., 5., 10., 12., 0., 0.], [ 0., 0., 6., 13., 10., 0., 0., 0.]])0 khi. Kết quả là, >>> from sklearn import svm >>> clf = svm.SVC(gamma=0.001, C=100.)6 trả về một mảng 2d với nhiều nhãn được dự đoán cho mỗi phiên bản |