Построение кривой из точек точечной диаграммы - PullRequest
0 голосов
/ 29 августа 2018

Я сталкиваюсь с глупой проблемой при построении графика из функции регрессии, рассчитанной с помощью sci-kit-learn. После построения функции мне нужно построить график, который показывает X и Y из исходных данных и вычисленные точки из моей функции. Проблема в том, что моя функция не является линией, несмотря на то, что она линейная, она использует ряд Фурье, чтобы придать правильную форму моей кривой, и когда я пытаюсь построить линии, используя:

ax.plot(df['GDPercapita'], modelp1.predict(df1), color='k')

Я получил такой график:

Участок

Но граф trhu должен быть линией, следующей за этими черными точками:

Точки для подключения

Я генерирую график, используя следующий код:

fig, ax = plt.subplots()
ax.scatter(df['GDPercapita'], df['LifeExpectancy'], edgecolors=(0, 0, 0))
ax.scatter(df['GDPercapita'], modelp1.predict(df1),color='k') #this line is changed to get the first pic.
ax.set_xlabel('Measured')
ax.set_ylabel('Predicted')
plt.show(block=True)

Кто-нибудь имеет представление о том, что делать?

РЕДАКТИРОВАТЬ ПОСЛЕ ДИСКУССИИ:

Хорошо, обо всем по порядку: Данные можно скачать по адресу: http://www.est.ufmg.br/~marcosop/est171-ML/dados/worldDevelopmentIndicators.csv

Мне нужно было сгенерировать новые данные с использованием разложения Фурье с нормализованными значениями GDPercapita, чтобы выполнить исчерпывающий алгоритм оптимизации для функции регрессии, используемой для прогнозирования LifeExpectancy, и выяснить число опционных параметров, которые генерируют наилучшую функцию регрессии. это число р = 22. Теперь я должен сгенерировать полиномиальную функцию, используя точки предсказания функции регрессии с p = 22, чтобы показать, как наилучшая функция регрессии сравнивается с функцией полинома с 22 градусами. Для генерации прогноза я использую следующий код:

from sklearn import linear_model
modelp22 = linear_model.LinearRegression()
modelp22.fit(xp22,y_train)
df22 = df[p22]

fig, ax = plt.subplots()
ax.scatter(df['GDPercapita'], df['LifeExpectancy'], edgecolors=(0, 0, 0))
ax.scatter(df['GDPercapita'], modelp22.predict(df22),color='k') 
ax.set_xlabel('GDPercapita')
ax.set_ylabel('LifeExpectancy')
plt.show(block=True)  

Теперь мне нужно использовать точки предсказания для создания полиномиальной функции и построить график с: исходными данными (первое разброс), точками предсказания (второй разброс) и полигональной функцией (кривая или график), чтобы показать их визуальное отношение.

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