Hướng dẫn Python

TRANG CHỦ Python Giới thiệu Python Python Bắt đầu Cú pháp Python Nhận xét Python Biến Python Các kiểu dữ liệu Python Số Python Đúc Python Chuỗi Python Python Booleans Toán tử Python Danh sách Python Python Tuples Bộ Python Từ điển Python Python Nếu ... Khác Python While Loops Python cho các vòng lặp Các hàm Python Python Lambda Mảng Python Các lớp / đối tượng Python Kế thừa Python Trình lặp lại Python Phạm vi Python Mô-đun Python Ngày trong Python Toán Python JSON Python Python RegEx Python PIP Python Thử ... Ngoại trừ Đầu vào của người dùng Python Định dạng chuỗi Python

Xử lý tập tin

Xử lý tệp Python Tệp đọc Python Viết / tạo tệp trong Python Xóa tệp trong Python

Mô-đun Python

Hướng dẫn NumPy Panda Walkthrough Hướng dẫn Scipy

Python Matplotlib

Giới thiệu Matplotlib Matplotlib Bắt đầu Matplotlib Pyplot Matplotlib Plotting Điểm đánh dấu Matplotlib Dòng Matplotlib Nhãn Matplotlib Matplotlib Grid Matplotlib Subplots Matplotlib Scatter Matplotlib Bars Biểu đồ Matplotlib Biểu đồ bánh Matplotlib

Học máy

Bắt đầu Chế độ trung bình trung bình Độ lệch chuẩn Phân vị Phân phối dữ liệu Phân phối dữ liệu bình thường Lô phân tán Hồi quy tuyến tính Hồi quy đa thức Nhiều hồi quy Tỉ lệ Huấn luyện / Kiểm tra Cây quyết định

Python MySQL

MySQL Bắt đầu MySQL Tạo cơ sở dữ liệu MySQL Tạo bảng Chèn MySQL Lựa chọn MySQL MySQL ở đâu MySQL Đặt hàng bởi MySQL Delete Bảng thả MySQL Cập nhật MySQL Giới hạn MySQL Tham gia MySQL

Python MongoDB

MongoDB Bắt đầu MongoDB Tạo cơ sở dữ liệu MongoDB Tạo Bộ sưu tập Chèn MongoDB MongoDB Tìm Truy vấn MongoDB MongoDB sắp xếp MongoDB Xóa MongoDB Drop Collection Cập nhật MongoDB Giới hạn MongoDB

Tham khảo Python

Tổng quan về Python Các hàm tích hợp trong Python Phương thức chuỗi Python Phương thức danh sách Python Phương thức từ điển Python Phương thức Tuple trong Python Phương thức tập hợp Python Phương thức tệp Python Từ khóa Python Ngoại lệ Python Bảng chú giải thuật ngữ Python

Tham chiếu mô-đun

Mô-đun ngẫu nhiên Mô-đun yêu cầu Mô-đun thống kê Mô-đun Toán học Mô-đun cMath

Python Làm thế nào để

Xóa danh sách trùng lặp Đảo ngược một chuỗi Thêm hai số

Ví dụ Python

Ví dụ Python Trình biên dịch Python Bài tập Python Python Quiz Chứng chỉ Python

Học máy - Đào tạo / Kiểm tra


Đánh giá mô hình của bạn

Trong Machine Learning, chúng tôi tạo ra các mô hình để dự đoán kết quả của một số sự kiện nhất định, giống như trong chương trước, chúng tôi dự đoán lượng khí thải CO2 của một chiếc ô tô khi chúng tôi biết trọng lượng và kích thước động cơ.

Để đo lường xem mô hình có đủ tốt hay không, chúng ta có thể sử dụng một phương pháp gọi là Train / Test.


Train / Test là gì

Train / Test là một phương pháp để đo độ chính xác của mô hình của bạn.

Nó được gọi là Train / Test vì bạn chia tập dữ liệu thành hai tập: tập huấn luyện và tập thử nghiệm.

80% để đào tạo và 20% để kiểm tra.

Bạn đào tạo mô hình bằng cách sử dụng bộ đào tạo.

Bạn kiểm tra mô hình bằng cách sử dụng bộ kiểm thử.

Huấn luyện mô hình có nghĩa là tạo ra mô hình.

Kiểm tra mô hình có nghĩa là kiểm tra độ chính xác của mô hình.


Bắt đầu với tập dữ liệu

Bắt đầu với tập dữ liệu bạn muốn kiểm tra.

Tập dữ liệu của chúng tôi minh họa 100 khách hàng trong một cửa hàng và thói quen mua sắm của họ.

Thí dụ

import numpy
import matplotlib.pyplot as plt
numpy.random.seed(2)

x = numpy.random.normal(3, 1, 100)
y = numpy.random.normal(150, 40, 100) / x

plt.scatter(x, y)
plt.show()

Kết quả:

Trục x thể hiện số phút trước khi mua hàng.

Trục y thể hiện số tiền đã chi để mua hàng.



Tách thành tàu / thử nghiệm

Tập huấn luyện phải là sự lựa chọn ngẫu nhiên của 80% dữ liệu gốc.

Tập hợp thử nghiệm nên là 20% còn lại.

train_x = x[:80]
train_y = y[:80]

test_x = x[80:]
test_y = y[80:]


Hiển thị Bộ đào tạo

Hiển thị cùng một biểu đồ phân tán với tập huấn luyện:

Thí dụ

plt.scatter(train_x, train_y)
plt.show()

Kết quả:

Nó trông giống như tập dữ liệu ban đầu, vì vậy nó có vẻ là một lựa chọn hợp lý:


Hiển thị Bộ thử nghiệm

Để đảm bảo tập thử nghiệm không hoàn toàn khác biệt, chúng ta cũng sẽ xem xét tập hợp thử nghiệm.

Thí dụ

plt.scatter(test_x, test_y)
plt.show()

Kết quả:

Tập hợp thử nghiệm cũng giống như tập dữ liệu gốc:


Điều chỉnh Tập dữ liệu

Tập dữ liệu trông như thế nào? Theo ý kiến ​​của tôi, tôi nghĩ phù hợp nhất sẽ là một hồi quy đa thức , vì vậy chúng ta hãy vẽ một đường hồi quy đa thức.

Để vẽ một đường thẳng qua các điểm dữ liệu, chúng tôi sử dụng plot()phương pháp của mô-đun matplotlib:

Thí dụ

Vẽ một đường hồi quy đa thức qua các điểm dữ liệu:

import numpy
import matplotlib.pyplot as plt
numpy.random.seed(2)

x = numpy.random.normal(3, 1, 100)
y = numpy.random.normal(150, 40, 100) / x

train_x = x[:80]
train_y = y[:80]

test_x = x[80:]
test_y = y[80:]

mymodel = numpy.poly1d(numpy.polyfit(train_x, train_y, 4))

myline = numpy.linspace(0, 6, 100)

plt.scatter(train_x, train_y)
plt.plot(myline, mymodel(myline))
plt.show()

Kết quả:

Kết quả có thể hỗ trợ gợi ý của tôi về việc tập dữ liệu phù hợp với một hồi quy đa thức, mặc dù nó sẽ cho chúng ta một số kết quả kỳ lạ nếu chúng ta cố gắng dự đoán các giá trị bên ngoài tập dữ liệu. Ví dụ: dòng cho biết rằng một khách hàng bỏ ra 6 phút trong cửa hàng sẽ mua hàng trị giá 200. Đó có thể là dấu hiệu của việc trang bị quá nhiều.

Nhưng còn điểm R bình phương thì sao? Điểm bình phương R là một chỉ báo tốt về mức độ phù hợp của tập dữ liệu của tôi với mô hình.


R2

Hãy nhớ R2, còn được gọi là R bình phương?

Nó đo lường mối quan hệ giữa trục x và trục y và giá trị nằm trong khoảng từ 0 đến 1, trong đó 0 có nghĩa là không có mối quan hệ và 1 có nghĩa là hoàn toàn liên quan.

Mô-đun sklearn có một phương thức được gọi là r2_score() sẽ giúp chúng ta tìm ra mối quan hệ này.

Trong trường hợp này, chúng tôi muốn đo lường mối quan hệ giữa số phút khách hàng ở lại cửa hàng và số tiền họ chi tiêu.

Thí dụ

Dữ liệu đào tạo của tôi phù hợp như thế nào trong một hồi quy đa thức?

import numpy
from sklearn.metrics import r2_score
numpy.random.seed(2)

x = numpy.random.normal(3, 1, 100)
y = numpy.random.normal(150, 40, 100) / x

train_x = x[:80]
train_y = y[:80]

test_x = x[80:]
test_y = y[80:]

mymodel = numpy.poly1d(numpy.polyfit(train_x, train_y, 4))

r2 = r2_score(train_y, mymodel(train_x))

print(r2)

Lưu ý: Kết quả 0,799 cho thấy rằng có một mối quan hệ OK.

Mang bộ thử nghiệm vào

Bây giờ chúng tôi đã tạo ra một mô hình OK, ít nhất là khi nói đến dữ liệu đào tạo.

Bây giờ chúng tôi cũng muốn kiểm tra mô hình với dữ liệu thử nghiệm, để xem liệu có mang lại cho chúng tôi kết quả tương tự hay không.

Thí dụ

Hãy để chúng tôi tìm điểm R2 khi sử dụng dữ liệu thử nghiệm:

import numpy
from sklearn.metrics import r2_score
numpy.random.seed(2)

x = numpy.random.normal(3, 1, 100)
y = numpy.random.normal(150, 40, 100) / x

train_x = x[:80]
train_y = y[:80]

test_x = x[80:]
test_y = y[80:]

mymodel = numpy.poly1d(numpy.polyfit(train_x, train_y, 4))

r2 = r2_score(test_y, mymodel(test_x))

print(r2)

Lưu ý: Kết quả 0,809 cho thấy rằng mô hình cũng phù hợp với bộ thử nghiệm và chúng tôi tin tưởng rằng chúng tôi có thể sử dụng mô hình để dự đoán các giá trị trong tương lai.


Dự đoán giá trị

Bây giờ chúng tôi đã thiết lập rằng mô hình của chúng tôi là OK, chúng tôi có thể bắt đầu dự đoán các giá trị mới.

Thí dụ

Một khách mua hàng sẽ chi bao nhiêu tiền nếu họ ở lại cửa hàng trong 5 phút?

print(mymodel(5))

Ví dụ dự đoán khách hàng chi 22,88 đô la, dường như tương ứng với sơ đồ: