Генерирование двухмерной тестовой s-кривой с помощью Scikit make-s-curve - PullRequest
0 голосов
/ 26 февраля 2020

Я пытаюсь создать некоторые тестовые данные в python ... и терпит неудачу.

Что мне нужно, так это двухмерная s-кривая, начинающаяся с 0,0 и идущая по S через ось x из n точек.

Есть несколько проблем, но я могу отсортировать отрицательные оси y, сдвинув кривую на максимальное отклонение и то же самое для настройки x. Однако реальная задача состоит в том, чтобы иметь только определенный срез S, и этот срез содержит n (например, 1000) точек. Я приложил изображение того, как я хочу, чтобы это выглядело, наложенное на мое текущее состояние дел (код ниже), но я не могу понять, как оптимизировать кривую для нужной фигуры и количества точек. Прежде чем я зайду слишком далеко вниз по этой кроличьей норе, было бы хорошо понять, есть ли у меня другие варианты или есть что-то, чего мне не хватает для оптимизации кривой.

Мое решение не обязательно должно быть научным, но, похоже, оно отлично справляется с логической регрессией, к которой я могу прийти. Любые указатели на мой метод или альтернативы?

import pandas
import sklearn
from sklearn import datasets

skl = sklearn.datasets.make_s_curve(n_samples=1000, noise=0.0, random_state=0)
x = skl[1].tolist()
y = [i[0] for i in skl[0]]
df = pandas.DataFrame(x, columns=['x'])
df.insert(1, 'y', y)

df.to_csv('_S-Curve.csv', index=True)

Current state of affairs

...