This figure is to illustrate a hyperplane
Is there a toy dataset could be used to draw this kind of figure with Python?
in other words, is there a dataset which is not linearly separable in 2d and linearly separable in 3D?
Open Data Stack Exchange is a question and answer site for developers and researchers interested in open data. It only takes a minute to sign up.
Sign up to join this communityThis figure is to illustrate a hyperplane
Is there a toy dataset could be used to draw this kind of figure with Python?
in other words, is there a dataset which is not linearly separable in 2d and linearly separable in 3D?
You could generate such a dataset using Python. A simple approach would be to generate a set of (x, y) coordinates, partition the set, then assign a distinct value for the z coordinate for each partition. An example with 100 points divided into 5 linearly separable partitions:
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
N = 100
K = 5 # Partitions to split the N observations.
x = np.random.normal(0, 1, N)
y = np.random.normal(0, 1, N)
z = np.repeat(np.arange(K), N / K) # One can simply shift the z-axis for
# partitions of the (x, y) coordinates
# Given this simple transformation, each
# partition is linearly separable.
# 2d plot
fig = plt.gcf()
plt.scatter(x, y, c=z)
plt.show()
fig.savefig('demo2d.png')
# 3d plot
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(x, y, z, c=z)
plt.show()
fig.savefig('demo3d.png')
# save toy dataset
D = np.vstack((x,y,z)).T
np.savetxt('demo.csv', D, delimiter=',')