Как мне построить этот набор данных в matplotlib? - PullRequest
0 голосов
/ 05 мая 2019

Я читаю учебник по машинному обучению, использующий Python, и пытаюсь построить набор данных, который используется.Учебное пособие использует приведенный ниже код для генерации используемых наборов данных, но не показывает код для их построения.

Они должны быть построены в 3-х измерениях, где значение z всегда равно 1 или -1,Вот код, который генерирует набор данных:

import numpy as np

def get_dataset(get_examples):
    X1, y1, X2, y2 = get_examples()
    X, y = get_dataset_for(X1, y1, X2, y2)
    return X, y

def get_dataset_for(X1, y1, X2, y2):
    X = np.vstack((X1, X2))
    y = np.hstack((y1, y2))
    return X, y

def get_training_examples():
    X1 = np.array([[10,10],[6,6],[6,11],[3,15],[12,6],[9,5],[16,3],[11,5]])
    X2 = np.array([[3,6],[6,3],[2,9],[9,2],[18,1],[1,18],[1,13],[13,1]])

    y1 = np.ones(len(X1))
    y2 = np.ones(len(X2)) * -1
    return X1, y1, X2, y2

Вот как выглядит набор данных:

>>> get_dataset(get_training_examples)

(array([[10, 10],
        [ 6,  6],
        [ 6, 11],
        [ 3, 15],
        [12,  6],
        [ 9,  5],
        [16,  3],
        [11,  5],
        [ 3,  6],
        [ 6,  3],
        [ 2,  9],
        [ 9,  2],
        [18,  1],
        [ 1, 18],
        [ 1, 13],
        [13,  1]]),
 array([ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1., -1., -1., -1., -1., -1.,
        -1., -1., -1.]))

1 Ответ

1 голос
/ 05 мая 2019

Я не знаю, как именно вы хотите построить это, но читая ваш вопрос, я думаю, что вы хотите разбросанный сюжет. Для этого вы должны работать с matplotlib и mpl_toolkits (для создания трехмерного представления)

код должен быть таким:

import numpy as np
from mpl_toolkits import mplot3d
import matplotlib.pyplot as plt

def get_dataset(get_examples):
    X1, y1, X2, y2 = get_examples()
    X, y = get_dataset_for(X1, y1, X2, y2)
    return X, y

def get_dataset_for(X1, y1, X2, y2):
    X = np.vstack((X1, X2))
    y = np.hstack((y1, y2))
    return X, y

def get_training_examples():
    X1 = np.array([[10,10],[6,6],[6,11],[3,15],[12,6],[9,5],[16,3],[11,5]])
    X2 = np.array([[3,6],[6,3],[2,9],[9,2],[18,1],[1,18],[1,13],[13,1]])

    y1 = np.ones(len(X1))
    y2 = np.ones(len(X2)) * -1
    return X1, y1, X2, y2

X,y = get_dataset(get_training_examples)
ax = plt.axes(projection='3d')
ax.scatter3D(X[:,0], X[:,1], y, c='r', marker='o') # c = 'color', marker = 'marker_form'

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...