Я недавно начал машинное обучение с использованием Python. Ниже приведен набор данных, который я взял в качестве примера вместе с кодами, над которыми я работал до сих пор. Выбран [2000 .... 2015] в качестве тестовых данных и данных поезда [2016, 2017].
Dataset
Years Values
0 2000 23.0
1 2001 27.5
2 2002 46.0
3 2003 56.0
4 2004 64.8
5 2005 71.2
6 2006 80.2
7 2007 98.0
8 2008 113.0
9 2009 155.8
10 2010 414.0
11 2011 2297.8
12 2012 3628.4
13 2013 16187.8
14 2014 25197.8
15 2015 42987.8
16 2016 77555.5
17 2017 130631.9
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
df = pd.DataFrame([[i for i in range(2000,2018)],
[23.0,27.5,46.0,56.0,64.8,71.2,80.2,98.0,113.0,155.8,414.0,2297.8,3628.4,16187.8,25197.8,42987.8,77555.5,130631.9]])
df = df.T
df.columns = ['Years', 'Values']
Приведенный выше код создает DataFrame. Еще одна важная вещь, которую нужно иметь в виду, это то, что мой столбец Years
является ВРЕМЕННЫМ, а не просто непрерывным значением. Я не внес никаких изменений, чтобы приспособиться к этому.
Я хочу подобрать нелинейные модели, которые могут помочь и напечатать графики, как я делал для моего примера линейной модели. Вот что я пробовал использовать линейную модель. Кроме того, в моем собственном примере я, похоже, не учитываю тот факт, что мой столбец Years
является временным рядом, а НЕ непрерывным.
Однажды, у нас есть модель, мы хотели бы использовать ее для прогнозирования значений, по крайней мере, на ближайшие пару лет.
X = df.iloc[:, :-1].values
y = df.iloc[:, 1].values
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.1, random_state = 0, shuffle = False)
lm = LinearRegression()
lm.fit(X_train, y_train)
y_pred = lm.predict(X_test)
plt.scatter(X_train, y_train, color = 'red')
plt.plot(X_train, lm.predict(X_train), color = 'blue')
plt.title('Years vs Values (training set)')
plt.xlabel('Years')
plt.ylabel('Values')
plt.show()