Hướng dẫn generate linearly separable data python - tạo python dữ liệu có thể phân tách tuyến tính

Không có tùy chọn "phân tách tuyến tính", nhưng bạn có thể từ chối một bộ dữ liệu khi nó không thể tách rời tuyến tính và tạo ra một dữ liệu khác. Như thế này:

separable = False
while not separable:
    samples = make_classification(n_samples=100, n_features=2, n_redundant=0, n_informative=1, n_clusters_per_class=1, flip_y=-1)
    red = samples[0][samples[1] == 0]
    blue = samples[0][samples[1] == 1]
    separable = any([red[:, k].max() < blue[:, k].min() or red[:, k].min() > blue[:, k].max() for k in range(2)])
plt.plot(red[:, 0], red[:, 1], 'r.')
plt.plot(blue[:, 0], blue[:, 1], 'b.')
plt.show()

Hướng dẫn generate linearly separable data python - tạo python dữ liệu có thể phân tách tuyến tính

Điều này chỉ kiểm tra phân tách dọc hoặc ngang, nhưng đó là những điều bạn mong đợi sẽ xảy ra với thiết lập của bạn.

Ngoài ra, việc tăng đối số class_sep làm cho sự tách biệt có nhiều khả năng xảy ra.

Làm thế nào để tạo ra các vấn đề kiểm tra dự đoán hồi quy tuyến tính.

Bạn có câu hỏi nào không? Đặt câu hỏi của bạn trong các ý kiến ​​dưới đây và tôi sẽ cố gắng hết sức để trả lời.

Dưới đây là các ví dụ tương tự về dữ liệu có thể tách rời tuyến tính:linearly separable data:

Và đây là một số ví dụ về dữ liệu không thể tách biệt tuyến tínhlinearly non-separable data

Hướng dẫn generate linearly separable data python - tạo python dữ liệu có thể phân tách tuyến tính

Khái niệm này có thể được mở rộng đến ba hoặc nhiều chiều là tốt. Ví dụ: bên dưới là một ví dụ về bộ dữ liệu ba chiều có thể tách rời tuyến tính:example of a three dimensional dataset that is linearly separable :

Theo kích thước n, bộ tách là một mặt phẳng siêu chiều (N-1)-mặc dù không thể hình dung được trong 4 hoặc nhiều chiều. – although it is pretty much impossible to visualize for 4 or more dimensions.

Định nghĩa đại số:

Về mặt đại số, bộ tách là hàm tuyến tính, tức là nếu điểm dữ liệu x được cho bởi (x1, x2), khi bộ tách là hàm f (x) = w1*x1 + w2*x2 + b

Tất cả các điểm mà f (x) = 0, nằm trên đường phân cách. Tất cả các điểm mà f (x)> 0 nằm ở một bên của dòng và tất cả các điểm mà f (x) <0 ở phía bên kia.

Tạo dữ liệu có thể phân tách tuyến tính cho mục đích kiểm tra:

# import libraries
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt
%matplotlib inline

# generate a 2-class classification problem with 1,000 data points,
# where each data point is a 2-D feature vector
(X, y) = make_blobs(n_samples=1000, n_features=2, centers=2, 
                 cluster_std=1.5, random_state=1)
y = y.reshape((y.shape[0], 1))

X.shape, y.shape

# plot the (testing) classification data
plt.style.use("ggplot")
plt.figure()
plt.title("Data")
plt.scatter(X[:, 0], X[:, 1], marker="o", c=y[:, 0], s=30)

Điều này tạo ra dữ liệu một cái gì đó như thế này:

Hướng dẫn generate linearly separable data python - tạo python dữ liệu có thể phân tách tuyến tính

Trong vài bài viết cuối cùng của chúng tôi, chúng tôi đã nói về các máy vector hỗ trợ. Chúng tôi đã xem xét chúng với lề cứng và mềm, và cũng là cách chúng tôi có thể sử dụng thủ thuật kernel khi dữ liệu của chúng tôi không thể tách rời tuyến tính. Tuy nhiên, trong bài viết này, chúng tôi sẽ chỉ xem xét cách thực hiện SVM khi dữ liệu của chúng tôi có thể tách rời tuyến tính. Trong bài viết tiếp theo, chúng tôi sẽ chuyển sang xem xét cách thực hiện nó khi dữ liệu không còn có thể tách rời tuyến tính. Chúng tôi sẽ triển khai các mô hình của chúng tôi bằng máy tính xách tay Jupyter và các thư viện khác nhau.

Xác định dữ liệu của chúng tôi

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

Các bộ dữ liệu kiểm tra là các bộ dữ liệu nhỏ được cho phép bạn kiểm tra thuật toán học máy hoặc khai thác thử nghiệm.

Dữ liệu từ các bộ dữ liệu thử nghiệm có các thuộc tính được xác định rõ, chẳng hạn như tuyến tính hoặc phi tuyến tính, cho phép bạn khám phá hành vi thuật toán cụ thể. Thư viện Scikit-Learn Python cung cấp một bộ chức năng để tạo mẫu từ các vấn đề kiểm tra có thể định cấu hình để hồi quy và phân loại.

Trong hướng dẫn này, bạn sẽ khám phá các vấn đề kiểm tra và cách sử dụng chúng trong Python với Scikit-learn.

Sau khi hoàn thành hướng dẫn này, bạn sẽ biết:

  • Làm thế nào để tạo ra các vấn đề kiểm tra dự đoán phân loại đa lớp.
  • Làm thế nào để tạo ra các vấn đề kiểm tra dự đoán phân loại nhị phân.
  • Làm thế nào để tạo ra các vấn đề kiểm tra dự đoán hồi quy tuyến tính.

Bạn có câu hỏi nào không? Đặt câu hỏi của bạn trong các ý kiến ​​dưới đây và tôi sẽ cố gắng hết sức để trả lời. with my new book Machine Learning Mastery With Python, including step-by-step tutorials and the Python source code files for all examples.

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

  • Phát triển mô hình của riêng bạn trong vài phút: Updated for changes in scikit-learn v0.22 API.

... 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

  1. 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 ...
  2. Cuối cùng mang máy học cho các dự án của riêng bạn
  3. Bỏ qua các học giả. Chỉ là kết quả.

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 ...

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

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

Xem những gì bên trong

  • Cập nhật lần cuối vào ngày 10 tháng 1 năm 2020
  • Các bộ dữ liệu kiểm tra là các bộ dữ liệu nhỏ được cho phép bạn kiểm tra thuật toán học máy hoặc khai thác thử nghiệm.
  • Dữ liệu từ các bộ dữ liệu thử nghiệm có các thuộc tính được xác định rõ, chẳng hạn như tuyến tính hoặc phi tuyến tính, cho phép bạn khám phá hành vi thuật toán cụ thể. Thư viện Scikit-Learn Python cung cấp một bộ chức năng để tạo mẫu từ các vấn đề kiểm tra có thể định cấu hình để hồi quy và phân loại.
  • Trong hướng dẫn này, bạn sẽ khám phá các vấn đề kiểm tra và cách sử dụng chúng trong Python với Scikit-learn.
  • Sau khi hoàn thành hướng dẫn này, bạn sẽ biết:

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ụ.

Bắt đầu nào.

Cập nhật tháng 1/2020: Cập nhật cho các thay đổi trong API Scikit-Learn v0.22.

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

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

Xem những gì bên trong

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

Các bộ dữ liệu kiểm tra là các bộ dữ liệu nhỏ được cho phép bạn kiểm tra thuật toán học máy hoặc khai thác thử nghiệm.

Dữ liệu từ các bộ dữ liệu thử nghiệm có các thuộc tính được xác định rõ, chẳng hạn như tuyến tính hoặc phi tuyến tính, cho phép bạn khám phá hành vi thuật toán cụ thể. Thư viện Scikit-Learn Python cung cấp một bộ chức năng để tạo mẫu từ các vấn đề kiểm tra có thể định cấu hình để hồi quy và phân loại.

Trong hướng dẫn này, bạn sẽ khám phá các vấn đề kiểm tra và cách sử dụng chúng trong Python với Scikit-learn.

Sau khi hoàn thành hướng dẫn này, bạn sẽ biết:

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ụ.

X,y=make_blobs(n_samples=100,centers=3,n_features=2),y=make_blobs(n_samples=100,centers=3,n_features=2)

Bắt đầu nào.

Cập nhật tháng 1/2020: Cập nhật cho các thay đổi trong API Scikit-Learn v0.22.sklearn.datasets import make_blobs

Tổng quan hướng dẫnmatplotlib import pyplot

Hướng dẫn này được chia thành 3 phần; họ đang:pandas import DataFrame

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ụ.

X,y=make_blobs(n_samples=100,centers=3,n_features=2),y= make_blobs(n_samples=100,centers=3,n_features=2)

# Biểu đồ phân tán, chấm được tô màu bởi giá trị lớp

df=DataFrame(dict(x=X[:,0],y=X[:,1],label=y))= DataFrame(dict(x=X[:,0],y=X[:,1],label=y))

colors={0:'red',1:'blue',2:'green'}= {0:'red',1:'blue',2:'green'}

fig,ax=pyplot.subplots(),ax=pyplot.subplots()

grouped=df.groupby('label')= df.groupby('label')

Forkey, nhóm đã tập trung:key,group ingrouped:

    group.plot(ax=ax,kind='scatter',x='x',y='y',label=key,color=colors[key])group.plot(ax=ax, kind='scatter',x='x',y='y',label=key,color=colors[key])

pyplot.show().show()

Chạy ví dụ tạo ra các đầu vào và đầu ra cho vấn đề và sau đó tạo ra một biểu đồ 2D tiện dụng hiển thị các điểm cho các lớp khác nhau bằng cách sử dụng các màu khác nhau.

Lưu ý, bộ dữ liệu cụ thể của bạn và biểu đồ kết quả của bạn sẽ thay đổi với bản chất ngẫu nhiên của trình tạo vấn đề. Đây là một tính năng, không phải là một lỗi.

Hướng dẫn generate linearly separable data python - tạo python dữ liệu có thể phân tách tuyến tính

Phân tán sơ đồ của vấn đề phân loại thử nghiệm Blobs

Chúng tôi sẽ sử dụng cấu trúc ví dụ tương tự cho các ví dụ sau.

Vấn đề phân loại mặt trăng

Hàm make_moons () là để phân loại nhị phân và sẽ tạo ra một mẫu xoáy, hoặc hai mặt trăng.

Bạn có thể kiểm soát mức độ ồn ào của hình mặt trăng và số lượng mẫu để tạo.

Vấn đề kiểm tra này phù hợp cho các thuật toán có khả năng học ranh giới lớp phi tuyến.

Ví dụ dưới đây tạo ra một bộ dữ liệu mặt trăng với tiếng ồn vừa phải.

# Tạo bộ dữ liệu phân loại 2D

X,y=make_moons(n_samples=100,noise=0.1),y=make_moons(n_samples=100,noise=0.1)

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

từ sklearn.datasets nhập make_moonssklearn.datasets import make_moons

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

từ GANDAS nhập dữ liệupandas import DataFrame

# Tạo bộ dữ liệu phân loại 2D

X,y=make_moons(n_samples=100,noise=0.1),y= make_moons(n_samples=100,noise=0.1)

# Biểu đồ phân tán, chấm được tô màu bởi giá trị lớp

df=DataFrame(dict(x=X[:,0],y=X[:,1],label=y))= DataFrame(dict(x=X[:,0],y=X[:,1],label=y))

colors={0:'red',1:'blue'}= {0:'red',1:'blue'}

fig,ax=pyplot.subplots(),ax=pyplot.subplots()

grouped=df.groupby('label')= df.groupby('label')

Forkey, nhóm đã tập trung:key,group ingrouped:

    group.plot(ax=ax,kind='scatter',x='x',y='y',label=key,color=colors[key])group.plot(ax=ax, kind='scatter',x='x',y='y',label=key,color=colors[key])

pyplot.show().show()

Chạy ví dụ tạo ra các đầu vào và đầu ra cho vấn đề và sau đó tạo ra một biểu đồ 2D tiện dụng hiển thị các điểm cho các lớp khác nhau bằng cách sử dụng các màu khác nhau.

Hướng dẫn generate linearly separable data python - tạo python dữ liệu có thể phân tách tuyến tính

Lưu ý, bộ dữ liệu cụ thể của bạn và biểu đồ kết quả của bạn sẽ thay đổi với bản chất ngẫu nhiên của trình tạo vấn đề. Đây là một tính năng, không phải là một lỗi.

Phân tán sơ đồ của vấn đề phân loại thử nghiệm Blobs

Chúng tôi sẽ sử dụng cấu trúc ví dụ tương tự cho các ví dụ sau.

Vấn đề phân loại mặt trăng

Hàm make_moons () là để phân loại nhị phân và sẽ tạo ra một mẫu xoáy, hoặc hai mặt trăng.

Bạn có thể kiểm soát mức độ ồn ào của hình mặt trăng và số lượng mẫu để tạo.

# Tạo bộ dữ liệu phân loại 2D

X,y=make_circles(n_samples=100,noise=0.05),y=make_circles(n_samples=100,noise=0.05)

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

từ sklearn.datasets nhập make_moonssklearn.datasets import make_circles

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

từ GANDAS nhập dữ liệupandas import DataFrame

# Tạo bộ dữ liệu phân loại 2D

X,y=make_circles(n_samples=100,noise=0.05),y= make_circles(n_samples=100,noise=0.05)

# Biểu đồ phân tán, chấm được tô màu bởi giá trị lớp

df=DataFrame(dict(x=X[:,0],y=X[:,1],label=y))= DataFrame(dict(x=X[:,0],y=X[:,1],label=y))

colors={0:'red',1:'blue'}= {0:'red',1:'blue'}

fig,ax=pyplot.subplots(),ax=pyplot.subplots()

grouped=df.groupby('label')= df.groupby('label')

Forkey, nhóm đã tập trung:key,group ingrouped:

    group.plot(ax=ax,kind='scatter',x='x',y='y',label=key,color=colors[key])group.plot(ax=ax, kind='scatter',x='x',y='y',label=key,color=colors[key])

pyplot.show().show()

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

Hướng dẫn generate linearly separable data python - tạo python dữ liệu có thể phân tách tuyến tính

từ sklearn.datasets nhập make_moons

từ pyplot nhập khẩu matplotlib

từ GANDAS nhập dữ liệu

Chạy ví dụ tạo và vẽ sơ đồ bộ dữ liệu để xem xét, một lần nữa tô màu các mẫu theo lớp được chỉ định của chúng.

Phân tán sơ đồ của mặt trăng bài kiểm tra bài kiểm tra vấn đề

Vấn đề phân loại vòng tròn

Hàm make_circles () tạo ra vấn đề phân loại nhị phân với các bộ dữ liệu rơi vào các vòng tròn đồng tâm.

Một lần nữa, như với vấn đề kiểm tra mặt trăng, bạn có thể kiểm soát lượng nhiễu trong các hình dạng.

X,y=make_regression(n_samples=100,n_features=1,noise=0.1),y=make_regression(n_samples=100,n_features=1,noise=0.1)

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

từ sklearn.datasets nhập make_moonssklearn.datasets import make_regression

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

Một lần nữa, như với vấn đề kiểm tra mặt trăng, bạn có thể kiểm soát lượng nhiễu trong các hình dạng.

X,y=make_regression(n_samples=100,n_features=1,noise=0.1),y=make_regression(n_samples=100, n_features=1,noise=0.1)

Vấn đề thử nghiệm này phù hợp cho các thuật toán có thể học các đa tạp phi tuyến tính phức tạp.

pyplot.scatter(X,y).scatter(X,y)

pyplot.show().show()

Ví dụ dưới đây tạo ra một bộ dữ liệu vòng tròn với một số tiếng ồn.

Hướng dẫn generate linearly separable data python - tạo python dữ liệu có thể phân tách tuyến tính

từ sklearn.datasets nhập make_circles

Chạy ví dụ tạo và vẽ sơ đồ dữ liệu để xem xét.

Phân tán sơ đồ của các vòng tròn bài kiểm tra bài kiểm tra vấn đề

  • Vấn đề kiểm tra hồi quy. Select a test problem and compare a suite of algorithms on the problem and report the performance.
  • Hồi quy là vấn đề dự đoán một số lượng đưa ra một quan sát.. Select a test problem and explore scaling it up, use progression methods to visualize the results, and perhaps explore model skill vs problem scale for a given algorithm.
  • Hàm make_regression () sẽ tạo ra một bộ dữ liệu với mối quan hệ tuyến tính giữa đầu vào và đầu ra.. The library provides a suite of additional test problems; write a code example for each to demonstrate how they work.

Bạn có thể định cấu hình số lượng mẫu, số lượng tính năng đầu vào, mức độ nhiễu và nhiều hơn nữa.

Đọc thêm

Phần này cung cấp nhiều tài nguyên hơn về chủ đề nếu bạn đang muốn đi sâu hơn.

  • Hướng dẫn sử dụng SCIKIT-LEARN: Tiện ích tải dữ liệu
  • API Scikit-Learn: Sklearn.DataSets: Bộ dữ liệu

Bản tóm tắt

Trong hướng dẫn này, bạn đã phát hiện ra các vấn đề kiểm tra và cách sử dụng chúng trong Python với Scikit-learn.

Cụ thể, bạn đã học được:

  • Làm thế nào để tạo ra các vấn đề kiểm tra dự đoán phân loại đa lớp.
  • Làm thế nào để tạo ra các vấn đề kiểm tra dự đoán phân loại nhị phân.
  • Làm thế nào để tạo ra các vấn đề kiểm tra dự đoán hồi quy tuyến tính.

Bạn có câu hỏi nào không? Đặt câu hỏi của bạn trong các ý kiến ​​dưới đây và tôi sẽ cố gắng hết sức để trả lời.
Ask your questions in the comments below and I will do my best to answer.

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

Hướng dẫn generate linearly separable data python - tạo python dữ liệu có thể phân tách tuyến tính

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