Hướng dẫn how do i start machine learning in python? - làm cách nào để bắt đầu học máy trong python?

Cập nhật lần cuối vào ngày 19 tháng 8 năm 2020

Show

Bạn có muốn học máy bằng cách sử dụng Python, nhưng bạn có gặp khó khăn khi bắt đầu không?

Trong bài đăng này, bạn sẽ hoàn thành dự án học máy đầu tiên của mình bằng Python.

Trong hướng dẫn từng bước này, bạn sẽ:

  1. Tải xuống và cài đặt Python Scipy và nhận gói hữu ích nhất để học máy ở Python.
  2. Tải một bộ dữ liệu và hiểu cấu trúc của nó bằng cách sử dụng các bản tóm tắt thống kê và trực quan hóa dữ liệu.
  3. Tạo 6 mô hình học máy, chọn tốt nhất và xây dựng niềm tin rằng độ chính xác là đáng tin cậy.

Nếu bạn là người mới bắt đầu học máy và tìm cách cuối cùng bắt đầu sử dụng Python, hướng dẫn này được thiết kế cho bạn.

Khởi động dự án của bạn với cuốn sách mới của tôi Machine Mastery với Python, bao gồm các hướng dẫn từng bước và các tệp mã nguồn Python cho tất cả các ví dụ. with my new book Machine Learning Mastery With Python, including step-by-step tutorials and the Python source code files for all examples.

Bắt đầu nào!

  • Cập nhật tháng 1/2017: Cập nhật để phản ánh các thay đổi đối với API Scikit-LEARN trong phiên bản 0.18.: Updated to reflect changes to the scikit-learn API in version 0.18.
  • Cập nhật Mar/2017: Đã thêm các liên kết để trợ giúp & NBSP; Thiết lập môi trường Python của bạn.: Added links to help setup your Python environment.
  • Cập nhật APR/2018: Đã thêm một số liên kết hữu ích về tính ngẫu nhiên và dự đoán.: Added some helpful links about randomness and predicting.
  • CẬP NHẬT SEP/2018: Đã thêm liên kết vào phiên bản dữ liệu được lưu trữ của riêng tôi.: Added link to my own hosted version of the dataset.
  • Cập nhật tháng 2/2019: Cập nhật cho Sklearn v0.20, cũng được cập nhật các lô.: Updated for sklearn v0.20, also updated plots.
  • Cập nhật tháng 10/2019: Đã thêm các liên kết ở cuối vào các hướng dẫn bổ sung để tiếp tục.: Added links at the end to additional tutorials to continue on.
  • Cập nhật tháng 11/2019: Đã thêm các ví dụ mã đầy đủ cho mỗi phần.: Added full code examples for each section.
  • Cập nhật Dec/2019: Các ví dụ được cập nhật để xóa cảnh báo do thay đổi API trong V0.22.: Updated examples to remove warnings due to API changes in v0.22.
  • Cập nhật tháng 1/2020: Cập nhật để xóa đoạn trích cho khai thác thử nghiệm.: Updated to remove the snippet for the test harness.

Hướng dẫn how do i start machine learning in python? - làm cách nào để bắt đầu học máy trong python?

Dự án học máy đầu tiên của bạn trong Python từng bước một của Cosmoflash, một số quyền được bảo lưu.
Photo by cosmoflash, some rights reserved.

Làm thế nào để bạn bắt đầu học máy trong Python?

Cách tốt nhất để học máy học là bằng cách thiết kế và hoàn thành các dự án nhỏ.

Python có thể đáng sợ khi bắt đầu

Python là & nbsp; một ngôn ngữ được giải thích phổ biến và mạnh mẽ. Không giống như R, Python là một ngôn ngữ và nền tảng hoàn chỉnh mà bạn có thể sử dụng cho cả nghiên cứu và phát triển và phát triển các hệ thống sản xuất.

Ngoài ra còn có rất nhiều mô -đun và thư viện để lựa chọn, cung cấp nhiều cách để thực hiện mỗi nhiệm vụ. Nó có thể cảm thấy quá sức.

Cách tốt nhất để bắt đầu sử dụng Python để học máy là hoàn thành một dự án.

  • Nó sẽ buộc bạn cài đặt và khởi động trình thông dịch Python (ít nhất là).
  • Nó sẽ cho bạn một cái nhìn của con chim về cách bước qua một dự án nhỏ.
  • Nó sẽ cho bạn sự tự tin, có thể để tiếp tục các dự án nhỏ của riêng bạn.

Người mới bắt đầu cần một dự án đầu cuối nhỏ

Sách và khóa học là bực bội. Họ cung cấp cho bạn rất nhiều công thức nấu ăn và đoạn trích, nhưng bạn không bao giờ có thể thấy tất cả chúng đều phù hợp với nhau như thế nào.

Khi bạn đang áp dụng việc học máy vào bộ dữ liệu của riêng bạn, bạn đang làm việc trong một dự án.

Một dự án học máy có thể không phải là tuyến tính, nhưng nó có một số bước nổi tiếng:

  1. Xác định vấn đề.
  2. Chuẩn bị dữ liệu.
  3. Đánh giá thuật toán.
  4. Cải thiện kết quả.
  5. Kết quả hiện tại.

Cách tốt nhất để thực sự đi đến thỏa thuận với một nền tảng hoặc công cụ mới là làm việc thông qua một dự án học máy từ đầu đến cuối và bao gồm các bước chính. Cụ thể, từ việc tải dữ liệu, tóm tắt dữ liệu, đánh giá các thuật toán và đưa ra một số dự đoán.

Nếu bạn có thể làm điều đó, bạn có một mẫu mà bạn có thể sử dụng trên tập dữ liệu sau bộ dữ liệu. Bạn có thể điền vào các khoảng trống như chuẩn bị dữ liệu thêm và cải thiện các nhiệm vụ kết quả sau này, một khi bạn có nhiều sự tự tin hơn.

Xin chào thế giới học máy

Dự án nhỏ tốt nhất để bắt đầu với một công cụ mới là phân loại hoa iris (ví dụ: bộ dữ liệu iris).

Đây là một dự án tốt bởi vì nó được hiểu rất rõ.

  • Các thuộc tính là số nên bạn phải tìm ra cách tải và xử lý dữ liệu.
  • Đó là một vấn đề phân loại, cho phép bạn thực hành với một loại thuật toán học tập có giám sát dễ dàng hơn.
  • Đây là một vấn đề phân loại đa lớp (đa số) có thể yêu cầu một số xử lý chuyên dụng.
  • Nó chỉ có 4 thuộc tính và 150 hàng, có nghĩa là nó nhỏ và dễ dàng phù hợp với bộ nhớ (và một màn hình hoặc trang A4).
  • Tất cả các thuộc tính số nằm trong cùng một đơn vị và cùng một thang đo, không yêu cầu bất kỳ tỷ lệ hoặc biến đổi đặc biệt nào để bắt đầu.

Hãy bắt đầu với dự án Hello World Machine Learning của bạn ở Python.

Học máy trong Python: Hướng dẫn từng bước (bắt đầu từ đây) (start here)

Trong phần này, chúng tôi sẽ làm việc thông qua một dự án máy học nhỏ từ đầu đến cuối.

Dưới đây là một cái nhìn tổng quan về những gì chúng ta sẽ trình bày:

  1. Cài đặt nền tảng Python và Scipy.
  2. Tải dữ liệu.
  3. Tóm tắt bộ dữ liệu.
  4. Trực quan hóa bộ dữ liệu.
  5. Đánh giá một số thuật toán.
  6. Đưa ra một số dự đoán.

Dành thời gian của bạn. Làm việc thông qua từng bước.

Cố gắng gõ vào các lệnh hoặc sao chép các lệnh để tăng tốc mọi thứ.

Nếu bạn có bất kỳ câu hỏi nào, xin vui lòng để lại nhận xét ở cuối bài.

Cần trợ giúp với việc học máy ở Python?

Lấy khóa học email 2 tuần miễn phí của tôi và khám phá chuẩn bị dữ liệu, thuật toán và nhiều hơn nữa (có mã).

Nhấp để đăng ký ngay bây giờ và cũng nhận được phiên bản Ebook PDF miễn phí của khóa học.

1. Tải xuống, cài đặt và bắt đầu Python Scipy

Lấy nền tảng Python và Scipy được cài đặt trên hệ thống của bạn nếu chưa có.

Tôi không muốn bao gồm điều này rất chi tiết, bởi vì những người khác đã có. Điều này đã khá đơn giản, đặc biệt nếu bạn là nhà phát triển. Nếu bạn cần giúp đỡ, hãy đặt một câu hỏi trong các ý kiến.

1.1 Cài đặt thư viện Scipy

Hướng dẫn này giả định Python phiên bản 2.7 hoặc 3.6+.

Có 5 thư viện chính mà bạn sẽ cần cài đặt. Dưới đây là danh sách các thư viện Python Scipy cần thiết cho hướng dẫn này:

  • scipy
  • Numpy
  • matplotlib
  • gấu trúc
  • Sklearn

Có nhiều cách để cài đặt các thư viện này. Lời khuyên tốt nhất của tôi là chọn một phương pháp sau đó nhất quán trong việc cài đặt mỗi thư viện.

Trang Cài đặt SCIPY cung cấp các hướng dẫn tuyệt vời để cài đặt các thư viện trên trên nhiều nền tảng khác nhau, chẳng hạn như Linux, Mac OS X và Windows. Nếu bạn có bất kỳ nghi ngờ hoặc câu hỏi nào, hãy tham khảo hướng dẫn này, nó đã được theo sau bởi hàng ngàn người.

  • Trên Mac OS X, bạn có thể sử dụng MacPorts để cài đặt Python 3.6 và các thư viện này. Để biết thêm thông tin về MacPorts, hãy xem trang chủ.
  • Trên Linux, bạn có thể sử dụng trình quản lý gói của mình, chẳng hạn như Yum trên Fedora để cài đặt RPM.

Nếu bạn đang ở trên Windows hoặc bạn không tự tin, tôi sẽ khuyên bạn nên cài đặt phiên bản miễn phí của Anaconda bao gồm mọi thứ bạn cần.

Lưu ý: Hướng dẫn này giả định rằng bạn đã cài đặt Scikit-Learn phiên bản 0,20 trở lên.: This tutorial assumes you have scikit-learn version 0.20 or higher installed.

Cần thêm trợ giúp? & NBSP; Xem một trong những hướng dẫn này:

  • Cách thiết lập môi trường Python để học máy với Anaconda
  • Cách tạo máy ảo Linux để học máy với Python 3

1.2 Bắt đầu Python và các phiên bản kiểm tra

Đó là một ý tưởng tốt để đảm bảo môi trường Python của bạn đã được cài đặt thành công và đang hoạt động như mong đợi.

Kịch bản dưới đây sẽ giúp bạn kiểm tra môi trường của bạn. Nó nhập từng thư viện cần thiết trong hướng dẫn này và in phiên bản.

Mở một dòng lệnh và khởi động trình thông dịch Python:

Tôi khuyên bạn nên làm việc trực tiếp trong trình thông dịch hoặc viết các tập lệnh của bạn và chạy chúng trên dòng lệnh thay vì các biên tập viên lớn và IDE. Giữ mọi thứ đơn giản và tập trung vào việc học máy chứ không phải công cụ.

Gõ hoặc sao chép và dán tập lệnh sau:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

# Kiểm tra các phiên bản của thư viện

# Phiên bản Python

nhập khẩu syssys

print ('Python: {}'. định dạng (sys.version))('Python: {}'.format(sys.version))

# Scipy

Nhập Scipyscipy

print ('scipy: {}'. định dạng (scipy .__ phiên bản__)))('scipy: {}'.format(scipy.__version__))

# Numpy

Nhập khẩu Numpynumpy

print ('numpy: {}'. định dạng (numpy .__ phiên bản__)))('numpy: {}'.format(numpy.__version__))

# matplotlib

Nhập matplotlibmatplotlib

print ('matplotlib: {}'. định dạng (matplotlib .__ phiên bản__))('matplotlib: {}'.format(matplotlib.__version__))

# gấu trúc

nhập khẩu gấu trúcpandas

PRIN('pandas: {}'.format(pandas.__version__))

# Scikit-Learn

Nhập Sklearnsklearn

print ('sklearn: {}'. định dạng (sklearn .__ phiên bản__)))('sklearn: {}'.format(sklearn.__version__))

Đây là đầu ra tôi nhận được trên máy trạm OS X của mình:

Python: 3.6.11 (mặc định, ngày 29 tháng 6 năm 2020, 13:22:26)

[GCC 4.2.1 Apple LLVM tương thích 9.1.0 (CLANG-902.0.39.2)]]

Scipy: 1.5.2

Numpy: 1.19.1

Matplotlib: 3.3.0

Gấu trúc: 1.1.0

Sklearn: 0,23.2

So sánh đầu ra trên với các phiên bản của bạn.

Lý tưởng nhất, các phiên bản của bạn sẽ phù hợp hoặc gần đây hơn. Các API không thay đổi nhanh chóng, vì vậy đừng quá quan tâm nếu bạn là một vài phiên bản phía sau, mọi thứ trong hướng dẫn này rất có thể vẫn có thể làm việc cho bạn.

Nếu bạn gặp lỗi, hãy dừng lại. Bây giờ là lúc để sửa nó.

Nếu bạn không thể chạy tập lệnh trên một cách sạch sẽ, bạn sẽ không thể hoàn thành hướng dẫn này.

Lời khuyên tốt nhất của tôi là tìm kiếm Google cho thông báo lỗi của bạn hoặc đăng câu hỏi trên Exchange Stack.

2. Tải dữ liệu

Chúng tôi sẽ sử dụng bộ dữ liệu Iris Flowers. Bộ dữ liệu này nổi tiếng bởi vì nó được sử dụng làm bộ dữ liệu của Hello Hello World trong việc học máy và thống kê của mọi người.

Bộ dữ liệu chứa 150 quan sát của hoa iris. Có bốn cột đo hoa trong cm. Cột thứ năm là loài của hoa quan sát. Tất cả hoa quan sát thuộc về một trong ba loài.

Bạn có thể tìm hiểu thêm về bộ dữ liệu này trên Wikipedia.

Trong bước này, chúng tôi sẽ tải dữ liệu IRIS từ URL tệp CSV.

2.1 Nhập thư viện

Đầu tiên, hãy để nhập khẩu tất cả các mô -đun, chức năng và đối tượng chúng ta sẽ sử dụng trong hướng dẫn này.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

# Tải thư viện

Từ Pandas Nhập READ_CSVpandas import read_csv

từ pandas. Nhập nhập scatter_matrixpandas.plotting import scatter_matrix

từ pyplot nhập khẩu matplotlibmatplotlib import pyplot

từ sklearn.model_selection nhập khẩu troed_test_splitsklearn.model_selection import train_test_split

từ sklearn.model_selection nhập Cross_val_scoresklearn.model_selection import cross_val_score

từ sklearn.model_selection nhập Stratifiedkfoldsklearn.model_selection import StratifiedKFold

Từ Sklearn.Metrics Nhập khẩu phân loại_Reportsklearn.metrics import classification_report

từ sklearn.metrics nhập khẩu confusion_matrixsklearn.metrics import confusion_matrix

từ sklearn.metrics nhập khẩu chính xác_scoresklearn.metrics import accuracy_score

từ sklearn.linear_model nhập khẩu logisticregressionsklearn.linear_model import LogisticRegression

từ sklearn.tree nhập khẩu ra quyết địnhsklearn.tree import DecisionTreeClassifier

từ sklearn.neighbors nhập khẩu KneighborsClassifiersklearn.neighbors import KNeighborsClassifier

từ sklearn.discriminant_analysis nhập khẩu lineardiscriminantanalysissklearn.discriminant_analysis import LinearDiscriminantAnalysis

từ sklearn.naive_bayes nhập Gaussiannbsklearn.naive_bayes import GaussianNB

từ sklearn.svm nhập svcsklearn.svm import SVC

.....

Mọi thứ sẽ tải mà không có lỗi. Nếu bạn có lỗi, hãy dừng lại. Bạn cần một môi trường scipy & nbsp; trước khi tiếp tục. Xem lời khuyên ở trên về việc thiết lập môi trường của bạn.

2.2 Tải dữ liệu

Chúng tôi có thể tải dữ liệu trực tiếp từ kho lưu trữ máy UCI.

Chúng tôi đang sử dụng gấu trúc để tải dữ liệu. Chúng tôi cũng sẽ sử dụng gấu trúc bên cạnh để khám phá dữ liệu cả với số liệu thống kê mô tả và trực quan hóa dữ liệu.

Lưu ý rằng chúng tôi đang chỉ định tên của mỗi cột khi tải dữ liệu. Điều này sẽ giúp sau khi chúng tôi khám phá dữ liệu.

.....

Mọi thứ sẽ tải mà không có lỗi. Nếu bạn có lỗi, hãy dừng lại. Bạn cần một môi trường scipy & nbsp; trước khi tiếp tục. Xem lời khuyên ở trên về việc thiết lập môi trường của bạn.

url="https://raw.githubusercontent.com/jbrownlee/Datasets/master/iris.csv"="https://raw.githubusercontent.com/jbrownlee/Datasets/master/iris.csv"

names=['sepal-length','sepal-width','petal-length','petal-width','class']=['sepal-length','sepal-width','petal-length', 'petal-width','class']

dataset=read_csv(url,names=names)=read_csv(url,names=names)

2.2 Tải dữ liệu

Chúng tôi có thể tải dữ liệu trực tiếp từ kho lưu trữ máy UCI.

Chúng tôi đang sử dụng gấu trúc để tải dữ liệu. Chúng tôi cũng sẽ sử dụng gấu trúc bên cạnh để khám phá dữ liệu cả với số liệu thống kê mô tả và trực quan hóa dữ liệu.

Lưu ý rằng chúng tôi đang chỉ định tên của mỗi cột khi tải dữ liệu. Điều này sẽ giúp sau khi chúng tôi khám phá dữ liệu.

# Tải tập dữ liệu

  1. Bộ dữ liệu nên tải mà không gặp sự cố.
  2. Nếu bạn gặp sự cố mạng, bạn có thể tải xuống tệp iris.csv vào thư mục làm việc của bạn và tải nó bằng phương thức tương tự, thay đổi URL thành tên tệp cục bộ.
  3. 3. Tóm tắt bộ dữ liệu
  4. Bây giờ là lúc để xem dữ liệu.

Trong bước này, chúng ta sẽ xem xét dữ liệu một vài cách khác nhau:

Kích thước của bộ dữ liệu.

Nhìn vào chính dữ liệu.

.....

Mọi thứ sẽ tải mà không có lỗi. Nếu bạn có lỗi, hãy dừng lại. Bạn cần một môi trường scipy & nbsp; trước khi tiếp tục. Xem lời khuyên ở trên về việc thiết lập môi trường của bạn.

print(dataset.shape)(dataset.shape)

2.2 Tải dữ liệu

Chúng tôi có thể tải dữ liệu trực tiếp từ kho lưu trữ máy UCI.

Chúng tôi đang sử dụng gấu trúc để tải dữ liệu. Chúng tôi cũng sẽ sử dụng gấu trúc bên cạnh để khám phá dữ liệu cả với số liệu thống kê mô tả và trực quan hóa dữ liệu.

.....

Mọi thứ sẽ tải mà không có lỗi. Nếu bạn có lỗi, hãy dừng lại. Bạn cần một môi trường scipy & nbsp; trước khi tiếp tục. Xem lời khuyên ở trên về việc thiết lập môi trường của bạn.

print(dataset.head(20))(dataset.head(20))

2.2 Tải dữ liệu

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

sepal-length  sepal-width  petal-length  petal-width        class

Chúng tôi có thể tải dữ liệu trực tiếp từ kho lưu trữ máy UCI.

Chúng tôi đang sử dụng gấu trúc để tải dữ liệu. Chúng tôi cũng sẽ sử dụng gấu trúc bên cạnh để khám phá dữ liệu cả với số liệu thống kê mô tả và trực quan hóa dữ liệu.

Lưu ý rằng chúng tôi đang chỉ định tên của mỗi cột khi tải dữ liệu. Điều này sẽ giúp sau khi chúng tôi khám phá dữ liệu.

# Tải tập dữ liệu

Bộ dữ liệu nên tải mà không gặp sự cố.

Nếu bạn gặp sự cố mạng, bạn có thể tải xuống tệp iris.csv vào thư mục làm việc của bạn và tải nó bằng phương thức tương tự, thay đổi URL thành tên tệp cục bộ.

3. Tóm tắt bộ dữ liệu

Bây giờ là lúc để xem dữ liệu.

8 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 1.4 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

9 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 1.5 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

10 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 5.4 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 1.5 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

11 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 4.8 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 1.6 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

12 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 4.8 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 1.4 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

13 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 4.3 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 1.1 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

14 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 5.8 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 1.2 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

15 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 5.7 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 1.5 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

16 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 5.4 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 1.3 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

17 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 5.1 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 1.4 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

18 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 5.7 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 1.7 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

19 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 5.1 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 1.5 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

3.3 Tóm tắt thống kê

Bây giờ chúng ta có thể xem một bản tóm tắt của mỗi thuộc tính.

Điều này bao gồm số lượng, giá trị trung bình, giá trị tối đa và tối đa cũng như một số phần trăm.

.....

# Mô tả

print(dataset.describe())(dataset.describe())

Chúng ta có thể thấy rằng tất cả các giá trị số có cùng tỷ lệ (cm) và phạm vi tương tự trong khoảng từ 0 đến 8 & nbsp; centimet.

chiều dài sepal & nbsp; & nbsp; sepal-width & nbsp; & nbsp; petal-leM

Count & nbsp; & nbsp; & nbsp; & nbsp; 150.000000 & nbsp; & nbsp; 150.000000 & nbsp; & nbsp; & nbsp; & nbsp; 150.000000 & nbsp; & nbsp; 150.000000

trung bình & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 5.843333 & nbsp; & nbsp; & nbsp; & nbsp; 3.054000 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 3.758667 & nbsp; & nbsp; & nbsp; 1.198667

Std & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0.433594 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 1.764420 & nbsp; & nbsp; & nbsp; & nbsp; 0,763161

Min & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 4.300000 & nbsp; 2.000000 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 1 0.100000

25%& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 2.800000 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 1.600000 & nbsp; & nbsp; & nbsp; & nbsp; 0,300000

50%& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 3.000000 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 4.350000 1.300000

75%& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 3.300000 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 5.100000 & nbsp; & nbsp; & nbsp; & nbsp; 1.800000

Max & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 4.400000 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 6.900000 & nbsp; & nbsp; & nbsp; & nbsp; 2.500000

3.4 Phân phối lớp

Bây giờ, hãy cùng xem số lượng các phiên bản (hàng) thuộc về mỗi lớp. Chúng ta có thể xem đây là một số lượng tuyệt đối.

.....

# Phân phối lớp

print(dataset.groupby('class').size())(dataset.groupby('class').size())

Chúng ta có thể thấy rằng mỗi lớp có cùng một số trường hợp (50 hoặc 33% của bộ dữ liệu).

class

Iris-setosa        50

Iris-versicolor    50

Iris-virginica & nbsp; & nbsp; & nbsp; & nbsp; 50

3.5 Ví dụ hoàn chỉnh

Để tham khảo, chúng ta có thể gắn tất cả các yếu tố trước đó lại với nhau thành một tập lệnh duy nhất.

Ví dụ hoàn chỉnh được liệt kê dưới đây.

# Tóm tắt dữ liệu

Từ Pandas Nhập READ_CSVpandas import read_csv

# Tải tập dữ liệu

url="https://raw.githubusercontent.com/jbrownlee/Datasets/master/iris.csv"="https://raw.githubusercontent.com/jbrownlee/Datasets/master/iris.csv"

names=['sepal-length','sepal-width','petal-length','petal-width','class']=['sepal-length', 'sepal-width','petal-length','petal-width','class']

dataset=read_csv(url,names=names)=read_csv(url,names=names)

# hình dạng

print(dataset.shape)(dataset.shape)

# cái đầu

print(dataset.head(20))(dataset.head(20))

# Mô tả

print(dataset.describe())(dataset.describe())

# Phân phối lớp

print(dataset.groupby('class').size())(dataset.groupby('class').size())

Chúng ta có thể thấy rằng mỗi lớp có cùng một số trường hợp (50 hoặc 33% của bộ dữ liệu).

Iris-virginica & nbsp; & nbsp; & nbsp; & nbsp; 50

3.5 Ví dụ hoàn chỉnh

  1. Để tham khảo, chúng ta có thể gắn tất cả các yếu tố trước đó lại với nhau thành một tập lệnh duy nhất.
  2. Ví dụ hoàn chỉnh được liệt kê dưới đây.

# Tóm tắt dữ liệu

Từ Pandas Nhập READ_CSV

# Tải tập dữ liệu

.....

# Phân phối lớp

dataset.plot(kind='box',subplots=True,layout=(2,2),sharex=False,sharey=False).plot(kind='box',subplots=True,layout=(2,2), sharex=False,sharey=False)

pyplot.show().show()

Chúng ta có thể thấy rằng mỗi lớp có cùng một số trường hợp (50 hoặc 33% của bộ dữ liệu).

Hướng dẫn how do i start machine learning in python? - làm cách nào để bắt đầu học máy trong python?

Iris-virginica & nbsp; & nbsp; & nbsp; & nbsp; 50

3.5 Ví dụ hoàn chỉnh

.....

# Phân phối lớp

dataset.hist().hist()

pyplot.show().show()

Chúng ta có thể thấy rằng mỗi lớp có cùng một số trường hợp (50 hoặc 33% của bộ dữ liệu).

Hướng dẫn how do i start machine learning in python? - làm cách nào để bắt đầu học máy trong python?

Iris-virginica & nbsp; & nbsp; & nbsp; & nbsp; 50

3.5 Ví dụ hoàn chỉnh

Để tham khảo, chúng ta có thể gắn tất cả các yếu tố trước đó lại với nhau thành một tập lệnh duy nhất.

Ví dụ hoàn chỉnh được liệt kê dưới đây.

.....

# Phân phối lớp

scatter_matrix(dataset)(dataset)

pyplot.show().show()

Chúng ta có thể thấy rằng mỗi lớp có cùng một số trường hợp (50 hoặc 33% của bộ dữ liệu).

Hướng dẫn how do i start machine learning in python? - làm cách nào để bắt đầu học máy trong python?

Iris-virginica & nbsp; & nbsp; & nbsp; & nbsp; 50

3.5 Ví dụ hoàn chỉnh

Để tham khảo, chúng ta có thể gắn tất cả các yếu tố trước đó lại với nhau thành một tập lệnh duy nhất.

Ví dụ hoàn chỉnh được liệt kê dưới đây.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

# Tóm tắt dữ liệu

Từ Pandas Nhập READ_CSVpandas import read_csv

# Tải tập dữ liệupandas.plotting import scatter_matrix

# hình dạngmatplotlib import pyplot

# Tải tập dữ liệu

url="https://raw.githubusercontent.com/jbrownlee/Datasets/master/iris.csv"= "https://raw.githubusercontent.com/jbrownlee/Datasets/master/iris.csv"

names=['sepal-length','sepal-width','petal-length','petal-width','class']=['sepal-length','sepal-width','petal-length','petal-width','class']

dataset=read_csv(url,names=names)= read_csv(url,names=names)

# Phân phối lớp

dataset.plot(kind='box',subplots=True,layout=(2,2),sharex=False,sharey=False).plot(kind='box',subplots=True, layout=(2,2),sharex=False,sharey=False)

pyplot.show().show()

# Phân phối lớp

dataset.hist().hist()

pyplot.show().show()

# Phân phối lớp

scatter_matrix(dataset)(dataset)

pyplot.show().show()

Chúng ta có thể thấy rằng mỗi lớp có cùng một số trường hợp (50 hoặc 33% của bộ dữ liệu).

Iris-virginica & nbsp; & nbsp; & nbsp; & nbsp; 50

3.5 Ví dụ hoàn chỉnh

  1. Để tham khảo, chúng ta có thể gắn tất cả các yếu tố trước đó lại với nhau thành một tập lệnh duy nhất.
  2. Ví dụ hoàn chỉnh được liệt kê dưới đây.
  3. # Tóm tắt dữ liệu
  4. Từ Pandas Nhập READ_CSV

# Tải tập dữ liệu

# hình dạng

# cái đầu

# Mô tả

Chúng tôi sẽ chia bộ dữ liệu được tải thành hai, 80% trong số đó chúng tôi sẽ sử dụng để đào tạo, đánh giá và chọn trong số các mô hình của chúng tôi và 20% mà chúng tôi sẽ giữ lại làm bộ dữ liệu xác thực.

.....

# Bộ dữ liệu xác thực chia ra

array=dataset.values=dataset.values

X=array[:,0:4]=array[:,0:4]

y=array[:,4]= array[:,4]

X_train,X_validation,Y_train,Y_validation=train_test_split(X,y,test_size=0.20,random_state=1),X_validation,Y_train,Y_validation=train_test_split(X,y, test_size=0.20,random_state=1)

Bây giờ bạn có dữ liệu đào tạo trong X_Train và Y_Train để chuẩn bị các mô hình và các bộ X_Validation và Y_Validation mà chúng ta có thể sử dụng sau này.

Lưu ý rằng chúng tôi đã sử dụng một lát Python để chọn các cột trong mảng numpy. Nếu điều này là mới đối với bạn, bạn có thể muốn kiểm tra bài đăng này:

  • Cách lập chỉ mục, cắt và định hình lại các mảng numpy cho máy học trong Python

5.2 Khai thác thử nghiệm

Chúng tôi sẽ sử dụng xác thực chéo được phân tầng 10 lần để ước tính độ chính xác của mô hình.

Điều này sẽ chia bộ dữ liệu của chúng tôi thành 10 phần, Train on & nbsp; 9 và kiểm tra trên 1 và lặp lại & nbsp; cho tất cả các kết hợp của các cuộc chia tách thử nghiệm tàu ​​hỏa.

Phân tầng có nghĩa là mỗi nếp gấp hoặc phân chia của bộ dữ liệu sẽ nhằm mục đích có cùng phân phối ví dụ theo lớp như tồn tại trong toàn bộ bộ dữ liệu đào tạo.

Để biết thêm về kỹ thuật xác thực chéo K-Fold, hãy xem hướng dẫn:

  • Giới thiệu nhẹ nhàng về xác thực chéo K

Chúng tôi đặt hạt giống ngẫu nhiên thông qua đối số Random_State thành một số cố định để đảm bảo rằng mỗi thuật toán được đánh giá trên cùng một lần chia của bộ dữ liệu đào tạo.

Hạt giống ngẫu nhiên cụ thể không quan trọng, tìm hiểu thêm về các trình tạo số giả ở đây:

  • Giới thiệu về các máy phát số ngẫu nhiên để học máy ở Python

Chúng tôi đang sử dụng số liệu của độ chính xác ‘để đánh giá các mô hình.

Đây là một tỷ lệ của số lượng các trường hợp được dự đoán chính xác chia cho tổng số trường hợp trong bộ dữ liệu nhân với 100 để đưa ra tỷ lệ phần trăm (ví dụ: chính xác 95%). Chúng tôi sẽ sử dụng Biến tính điểm & NBSP; khi chúng tôi chạy xây dựng và đánh giá từng mô hình tiếp theo.

5.3 Mô hình xây dựng

Chúng tôi không biết thuật toán nào sẽ tốt cho vấn đề này hoặc sử dụng cấu hình nào.

Chúng tôi nhận được một ý tưởng từ các lô rằng một số lớp có thể tách rời một phần theo một số chiều, vì vậy chúng tôi đang mong đợi kết quả tốt.

Hãy để thử nghiệm 6 thuật toán khác nhau:

  • Hồi quy logistic (LR)
  • Phân tích phân biệt tuyến tính (LDA)
  • Hàng xóm k-rearest (KNN).
  • Phân loại và cây hồi quy (giỏ hàng).
  • Gaussian Naive Bayes (NB).
  • Hỗ trợ máy vector (SVM).

Đây là một hỗn hợp tốt của các thuật toán tuyến tính đơn giản (LR và LDA), phi tuyến (KNN, Cart, NB và SVM).

Hãy để xây dựng và đánh giá các mô hình của chúng tôi:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

.....

# Thuật toán kiểm tra tại chỗ

models=[]=[]

models.append(('LR',LogisticRegression(solver='liblinear',multi_class='ovr'))).append(('LR',LogisticRegression(solver='liblinear', multi_class='ovr')))

models.append(('LDA',LinearDiscriminantAnalysis())).append(('LDA',LinearDiscriminantAnalysis()))

models.append(('KNN',KNeighborsClassifier())).append(('KNN', KNeighborsClassifier()))

models.append(('CART',DecisionTreeClassifier())).append(('CART',DecisionTreeClassifier()))

models.append(('NB',GaussianNB())).append(('NB', GaussianNB()))

models.append(('SVM',SVC(gamma='auto'))).append(('SVM',SVC(gamma='auto')))

# Đánh giá từng mô hình lần lượt

results=[]=[]

names=[] =[]

Forname, Model Inmodels:name,model inmodels:

kfold=StratifiedKFold(n_splits=10,random_state=1,shuffle=True)=StratifiedKFold(n_splits=10,random_state=1, shuffle=True)

cv_results=cross_val_score(model,X_train,Y_train,cv=kfold,scoring='accuracy')=cross_val_score(model,X_train,Y_train,cv=kfold,scoring='accuracy')

results.append(cv_results).append(cv_results)

names.append(name).append(name)

in ('%s:%f (%f)'%(tên, cv_results.mean (), cv_results.std ()))('%s: %f (%f)'%(name, cv_results.mean(),cv_results.std()))

5.4 Chọn mô hình tốt nhất

Bây giờ chúng tôi có 6 mô hình và ước tính chính xác cho mỗi mô hình. Chúng ta cần so sánh các mô hình với nhau và chọn chính xác nhất.

Chạy ví dụ ở trên, chúng tôi nhận được kết quả thô sau:

LR: 0,960897 (0,052113)

LDA: 0,973974 (0,040110)

KNN: 0,957191 (0,043263)

Giỏ hàng: 0,957191 (0,043263)

NB: 0,948858 (0,056322)

SVM: 0,983974 (0,032083)

Lưu ý: Kết quả của bạn có thể khác nhau với tính chất ngẫu nhiên của thuật toán hoặc quy trình đánh giá, hoặc sự khác biệt về độ chính xác số. Xem xét chạy ví dụ một vài lần và so sánh kết quả trung bình.: Your results may vary given the stochastic nature of the algorithm or evaluation procedure, or differences in numerical precision. Consider running the example a few times and compare the average outcome.

Bạn đã nhận được điểm nào? Đăng kết quả của bạn trong các ý kiến ​​dưới đây.
Post your results in the comments below.

Trong trường hợp này, chúng ta có thể thấy rằng có vẻ như máy vector hỗ trợ (SVM) có điểm chính xác ước tính lớn nhất ở mức khoảng 0,98 hoặc 98%.

Chúng ta cũng có thể tạo ra một biểu đồ của kết quả đánh giá mô hình và so sánh độ lây lan và độ chính xác trung bình của từng mô hình. Có một số lượng các biện pháp chính xác cho mỗi thuật toán vì mỗi thuật toán được đánh giá 10 lần (thông qua xác thực chéo 10 lần).

Một cách hữu ích để so sánh các mẫu kết quả cho mỗi thuật toán là tạo ra một hộp và đồ trang phục cho mỗi phân phối và so sánh các bản phân phối.

.....

# So sánh thuật toán

pyplot.boxplot(results,labels=names).boxplot(results,labels=names)

pyplot.title ('so sánh thuật toán')).title('Algorithm Comparison')

pyplot.show().show()

Chúng ta có thể thấy rằng các ô hộp và râu ria bị đè bẹp ở đầu phạm vi, với nhiều đánh giá đạt được độ chính xác 100% và một số đẩy xuống vào độ chính xác cao 80%.

Hướng dẫn how do i start machine learning in python? - làm cách nào để bắt đầu học máy trong python?

Box và Whisker lô so sánh thuật toán học máy trên bộ dữ liệu Iris Flowers

5.5 Ví dụ hoàn chỉnh

Để tham khảo, chúng ta có thể gắn tất cả các yếu tố trước đó lại với nhau thành một tập lệnh duy nhất.

Ví dụ hoàn chỉnh được liệt kê dưới đây.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

# So sánh thuật toán

Từ Pandas Nhập READ_CSVpandas import read_csv

từ pyplot nhập khẩu matplotlibmatplotlib import pyplot

từ sklearn.model_selection nhập khẩu troed_test_splitsklearn.model_selection import train_test_split

từ sklearn.model_selection nhập Cross_val_scoresklearn.model_selection import cross_val_score

từ sklearn.model_selection nhập Stratifiedkfoldsklearn.model_selection import StratifiedKFold

từ sklearn.linear_model nhập khẩu logisticregressionsklearn.linear_model import LogisticRegression

từ sklearn.tree nhập khẩu ra quyết địnhsklearn.tree import DecisionTreeClassifier

từ sklearn.neighbors nhập khẩu KneighborsClassifiersklearn.neighbors import KNeighborsClassifier

từ sklearn.discriminant_analysis nhập khẩu lineardiscriminantanalysissklearn.discriminant_analysis import LinearDiscriminantAnalysis

từ sklearn.naive_bayes nhập Gaussiannbsklearn.naive_bayes import GaussianNB

từ sklearn.svm nhập svcsklearn.svm import SVC

# Tải tập dữ liệu

url="https://raw.githubusercontent.com/jbrownlee/Datasets/master/iris.csv" ="https://raw.githubusercontent.com/jbrownlee/Datasets/master/iris.csv"

names=['sepal-length','sepal-width','petal-length','petal-width','class']=['sepal-length','sepal-width','petal-length','petal-width','class']

dataset=read_csv(url,names=names) =read_csv(url,names=names)

# Bộ dữ liệu xác thực chia ra

array=dataset.values=dataset.values

X=array[:,0:4]= array[:,0:4]

y=array[:,4]=array[:,4]

X_train,X_validation,Y_train,Y_validation=train_test_split(X,y,test_size=0.20,random_state=1,shuffle=True),X_validation,Y_train,Y_validation= train_test_split(X,y,test_size=0.20,random_state=1,shuffle=True)

# Thuật toán kiểm tra tại chỗ

models=[]=[]

models.append(('LR',LogisticRegression(solver='liblinear',multi_class='ovr'))).append(('LR',LogisticRegression(solver='liblinear',multi_class='ovr')))

models.append(('LDA',LinearDiscriminantAnalysis())).append(('LDA', LinearDiscriminantAnalysis()))

models.append(('KNN',KNeighborsClassifier())).append(('KNN',KNeighborsClassifier()))

models.append(('CART',DecisionTreeClassifier())).append(('CART', DecisionTreeClassifier()))

models.append(('NB',GaussianNB())).append(('NB',GaussianNB()))

models.append(('SVM',SVC(gamma='auto'))).append(('SVM', SVC(gamma='auto')))

# Đánh giá từng mô hình lần lượt

results=[]=[]

names=[]=[]

Forname, Model Inmodels:name,model in models:

kfold=StratifiedKFold(n_splits=10,random_state=1,shuffle=True)=StratifiedKFold(n_splits=10,random_state=1,shuffle=True)

cv_results=cross_val_score(model,X_train,Y_train,cv=kfold,scoring='accuracy')= cross_val_score(model,X_train,Y_train,cv=kfold,scoring='accuracy')

results.append(cv_results).append(cv_results)

names.append(name).append(name)

in ('%s:%f (%f)'%(tên, cv_results.mean (), cv_results.std ()))('%s: %f (%f)'%(name,cv_results.mean(),cv_results.std()))

# So sánh thuật toán

pyplot.boxplot(results,labels=names).boxplot(results,labels=names)

pyplot.title ('so sánh thuật toán')).title('Algorithm Comparison')

pyplot.show().show()

6. Đưa ra dự đoán

Chúng ta phải chọn một thuật toán để sử dụng để đưa ra dự đoán.

Các kết quả trong phần trước cho thấy SVM có lẽ là mô hình chính xác nhất. Chúng tôi sẽ sử dụng mô hình này làm mô hình cuối cùng của chúng tôi.

Bây giờ chúng tôi muốn có được một ý tưởng về tính chính xác của mô hình trên bộ xác thực của chúng tôi.

Điều này sẽ cung cấp cho chúng tôi một kiểm tra cuối cùng độc lập về độ chính xác của mô hình tốt nhất. Nó có giá trị để giữ một bộ xác nhận chỉ trong trường hợp bạn thực hiện một cú trượt trong quá trình đào tạo, chẳng hạn như quá mức cho tập huấn luyện hoặc rò rỉ dữ liệu. Cả hai vấn đề này sẽ dẫn đến một kết quả quá lạc quan.

6.1 đưa ra dự đoán

Chúng tôi có thể phù hợp với mô hình trên toàn bộ bộ dữ liệu đào tạo và đưa ra dự đoán trên bộ dữ liệu xác thực.

.....

# Đưa ra dự đoán về bộ dữ liệu xác thực

model=SVC(gamma='auto')=SVC(gamma='auto')

model.fit(X_train,Y_train).fit(X_train,Y_train)

predictions=model.predict(X_validation)= model.predict(X_validation)

Bạn cũng có thể muốn đưa ra dự đoán cho các hàng dữ liệu đơn lẻ. & Nbsp; để biết các ví dụ về cách thực hiện điều đó, xem hướng dẫn:

  • Cách đưa ra dự đoán với Scikit-learn

Bạn cũng có thể muốn lưu mô hình vào tệp và tải nó sau để đưa ra dự đoán về dữ liệu mới. Để biết ví dụ về cách làm điều này, hãy xem hướng dẫn:

  • Lưu và tải các mô hình học máy trong Python với scikit-learn

6.2 Đánh giá dự đoán

Chúng tôi có thể đánh giá các dự đoán bằng cách so sánh chúng với các kết quả dự kiến ​​trong tập xác thực, sau đó tính toán độ chính xác phân loại, cũng như ma trận nhầm lẫn và báo cáo phân loại.

Hốt tức...

# Đánh giá dự đoán

print(accuracy_score(Y_validation,predictions))(accuracy_score(Y_validation,predictions))

print(confusion_matrix(Y_validation,predictions))(confusion_matrix(Y_validation,predictions))

print(classification_report(Y_validation,predictions))(classification_report(Y_validation, predictions))

Chúng ta có thể thấy rằng độ chính xác là 0,966 hoặc khoảng 96% trên bộ dữ liệu giữ.

Ma trận nhầm lẫn cung cấp một dấu hiệu cho thấy các lỗi được thực hiện.

Cuối cùng, báo cáo phân loại cung cấp một sự cố của mỗi lớp theo độ chính xác, thu hồi, điểm F1 và hỗ trợ cho thấy kết quả tuyệt vời (được cấp bộ dữ liệu xác thực là nhỏ).

0.9666666666666667

[[11  0  0]

[0 12 & nbsp; & nbsp; 1]

[0 & nbsp; & nbsp; 0 & nbsp; & nbsp; 6]]

Độ chính xác & nbsp; ủng hộ

Iris-setosa & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 1,00 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

Iris-vvers biệt & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 1,00 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp;

Iris-virginica & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0,86 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 1.00 & nbsp; 6

độ chính xác & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0,97 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 30

macro avg & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0,95 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0,97 & nbsp;

AVG & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0,97 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0,97 & nbsp;

6.3 Ví dụ hoàn chỉnh

Để tham khảo, chúng ta có thể gắn tất cả các yếu tố trước đó lại với nhau thành một tập lệnh duy nhất.

Ví dụ hoàn chỉnh được liệt kê dưới đây.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

# đưa ra dự đoán

Từ Pandas Nhập READ_CSVpandas import read_csv

từ sklearn.model_selection nhập khẩu troed_test_splitsklearn.model_selection import train_test_split

Từ Sklearn.Metrics Nhập khẩu phân loại_Reportsklearn.metrics import classification_report

từ sklearn.metrics nhập khẩu confusion_matrixsklearn.metrics import confusion_matrix

từ sklearn.metrics nhập khẩu chính xác_scoresklearn.metrics import accuracy_score

từ sklearn.svm nhập svcsklearn.svm import SVC

# Tải tập dữ liệu

url="https://raw.githubusercontent.com/jbrownlee/Datasets/master/iris.csv"="https://raw.githubusercontent.com/jbrownlee/Datasets/master/iris.csv"

names=['sepal-length','sepal-width','petal-length','petal-width','class'] =['sepal-length','sepal-width','petal-length','petal-width','class']

dataset=read_csv(url,names=names)=read_csv(url, names=names)

# Bộ dữ liệu xác thực chia ra

array=dataset.values=dataset.values

X=array[:,0:4]=array[:,0:4]

y=array[:,4]= array[:,4]

X_train,X_validation,Y_train,Y_validation=train_test_split(X,y,test_size=0.20,random_state=1),X_validation,Y_train,Y_validation=train_test_split(X,y, test_size=0.20,random_state=1)

# Đưa ra dự đoán về bộ dữ liệu xác thực

model=SVC(gamma='auto')=SVC(gamma='auto')

model.fit(X_train,Y_train).fit(X_train, Y_train)

predictions=model.predict(X_validation)=model.predict(X_validation)

# Đánh giá dự đoán

print(accuracy_score(Y_validation,predictions))(accuracy_score(Y_validation,predictions))

print(confusion_matrix(Y_validation,predictions))(confusion_matrix(Y_validation, predictions))

print(classification_report(Y_validation,predictions))(classification_report(Y_validation,predictions))

Bạn có thể học máy ở Python

Làm việc thông qua hướng dẫn ở trên. Bạn sẽ mất 5 đến 10 phút, tối đa!

Bạn không cần phải hiểu mọi thứ. (ít nhất là không phải ngay bây giờ) Mục tiêu của bạn là chạy qua hướng dẫn từ đầu đến cuối và nhận được kết quả. Bạn không cần phải hiểu mọi thứ trên đường chuyền đầu tiên. Liệt kê các câu hỏi của bạn khi bạn đi. Sử dụng nhiều trợ giúp (tên của FunctionName) giúp cú pháp trong Python để tìm hiểu về tất cả các chức năng mà bạn sử dụng.. (at least not right now) Your goal is to run through the tutorial end-to-end and get a result. You do not need to understand everything on the first pass. List down your questions as you go. Make heavy use of the help(“FunctionName”) help syntax in Python to learn about all of the functions that you’re using.

Bạn không cần biết các thuật toán hoạt động như thế nào. Điều quan trọng là phải biết về các hạn chế và cách định cấu hình các thuật toán học máy. Nhưng tìm hiểu về các thuật toán có thể đến sau. Bạn cần xây dựng kiến ​​thức thuật toán này từ từ trong một khoảng thời gian dài. Hôm nay, bắt đầu bằng cách thoải mái với nền tảng.. It is important to know about the limitations and how to configure machine learning algorithms. But learning about algorithms can come later. You need to build up this algorithm knowledge slowly over a long period of time. Today, start off by getting comfortable with the platform.

Bạn không cần phải là một lập trình viên Python. Cú pháp của ngôn ngữ Python có thể trực quan & nbsp; nếu bạn chưa quen với nó. Cũng giống như các ngôn ngữ khác, tập trung vào các cuộc gọi chức năng (ví dụ: hàm ()) và các bài tập (ví dụ: a = Hồi bv). Điều này sẽ giúp bạn có hầu hết các cách. Bạn là một nhà phát triển, bạn biết cách chọn những điều cơ bản của một ngôn ngữ thực sự nhanh chóng. Chỉ cần bắt đầu và đi sâu vào các chi tiết sau.. The syntax of the Python language can be intuitive if you are new to it. Just like other languages, focus on function calls (e.g. function()) and assignments (e.g. a = “b”). This will get you most of the way. You are a developer, you know how to pick up the basics of a language real fast. Just get started and dive into the details later.

Bạn không cần phải là một chuyên gia học máy. Bạn có thể tìm hiểu về các lợi ích và hạn chế của các thuật toán khác nhau sau này và có rất nhiều bài viết mà bạn có thể đọc sau để cải thiện các bước của dự án học máy và tầm quan trọng của việc đánh giá độ chính xác bằng cách sử dụng xác thực chéo.. You can learn about the benefits and limitations of various algorithms later, and there are plenty of posts that you can read later to brush up on the steps of a machine learning project and the importance of evaluating accuracy using cross validation.

Còn các bước khác trong một dự án học máy. Chúng tôi đã không bao gồm tất cả các bước trong một dự án học máy vì đây là dự án đầu tiên của bạn và chúng tôi cần tập trung vào các bước chính. Cụ thể, tải dữ liệu, xem xét dữ liệu, đánh giá một số thuật toán và đưa ra một số dự đoán. Trong các hướng dẫn sau này, chúng ta có thể xem xét các tác vụ chuẩn bị dữ liệu và kết quả khác.. We did not cover all of the steps in a machine learning project because this is your first project and we need to focus on the key steps. Namely, loading data, looking at the data, evaluating some algorithms and making some predictions. In later tutorials we can look at other data preparation and result improvement tasks.

Bản tóm tắt

Trong bài đăng này, bạn đã phát hiện ra từng bước làm thế nào để hoàn thành dự án học máy đầu tiên của bạn ở Python.

Bạn phát hiện ra rằng việc hoàn thành một dự án đầu cuối nhỏ từ việc tải dữ liệu đến dự đoán là cách tốt nhất để làm quen với một nền tảng mới.

Bước tiếp theo của bạn

Bạn có làm việc thông qua hướng dẫn không?

  1. Làm việc thông qua hướng dẫn trên.
  2. Liệt kê bất kỳ câu hỏi bạn có.
  3. Tìm kiếm hoặc nghiên cứu các câu trả lời.
  4. Hãy nhớ rằng, bạn có thể sử dụng Trợ giúp (Tên chức năng) trong Python để nhận trợ giúp về bất kỳ chức năng nào.

Bạn có câu hỏi nào không? Đăng nó trong các ý kiến ​​dưới đây.
Post it in the comments below.

Thêm hướng dẫn?

Tìm cách tiếp tục thực hành các kỹ năng học máy của bạn, hãy xem một số hướng dẫn sau:

  • Hướng dẫn học máy Python

Khám phá học máy nhanh trong Python!

Hướng dẫn how do i start machine learning in python? - làm cách nào để bắt đầu học máy trong python?

Phát triển mô hình của riêng bạn trong vài phút

... chỉ với một vài dòng mã Scikit-learn

Tìm hiểu làm thế nào trong ebook mới của tôi: Machine Learning Mastery với Python
Machine Learning Mastery With Python

Bao gồm các hướng dẫn tự học và các dự án từ đầu đến cuối như: tải dữ liệu, trực quan hóa, mô hình hóa, điều chỉnh và nhiều hơn nữa ...self-study tutorials and end-to-end projects like:
Loading data, visualization, modeling, tuning, and much more...

Cuối cùng mang máy học cho các dự án của riêng bạn
Your Own Projects

Bỏ qua các học giả.Chỉ là kết quả.

Xem những gì bên trong

Làm thế nào một người mới bắt đầu học Python?

11 Lời khuyên cho người mới bắt đầu để học lập trình Python..
Làm cho nó dính.Mẹo số 1: Mã hàng ngày.Mẹo số 2: Viết nó ra.....
Làm cho nó hợp tác.Mẹo số 6: Bao quanh bạn với những người khác đang học.Mẹo số 7: Dạy.....
Làm một cái gì đó.Mẹo số 10: Xây dựng một cái gì đó, bất cứ điều gì.Mẹo số 11: Đóng góp cho nguồn mở ..
Đi ra ngoài và học hỏi!.

Bạn có thể học máy học với Python không?

Hãy sẵn sàng để đi sâu vào thế giới học máy (ML) bằng cách sử dụng Python!Khóa học này dành cho bạn cho dù bạn muốn nâng cao sự nghiệp khoa học dữ liệu của mình hay bắt đầu học máy và học sâu.! This course is for you whether you want to advance your Data Science career or get started in Machine Learning and Deep Learning.