3
$\begingroup$

I have a pandas data frame like this:

(index) 0           sie

0       1997-01-01  11.2
1        1997-01-03  12.3
2        1997-01-04  11.5
...
12454    2017-02-01  13.2

I would like to use SVM to predict the future values of the sie. How can I implement python code to predict these values?

I am doing something like this:

model = svm.SVR().fit(df[0],df['sie'])

But it is giving me this error:

ValueError: Found input variables with inconsistent numbers of samples: [1, 12455]

Although both df[0]anddf['sie'] have same shape of (12455,)

Note: I don't have continuous data (some dates, in between, are missing), also values in 0 are datetime.date() objects.

$\endgroup$
  • $\begingroup$ Try this model = svm.SVR().fit(df['0'],df['sie']) $\endgroup$ – Grasshopper Jun 14 '17 at 12:49
  • $\begingroup$ Giving KeyError: '0'. I don't think this is a problem though.. $\endgroup$ – vizakshat Jun 14 '17 at 12:52
  • $\begingroup$ I used df.rename(columns={0:'Dates'}, inplace=True) and model = svm.SVR().fit(df['Dates'],df['sie']) still giving me **ValueError** $\endgroup$ – vizakshat Jun 14 '17 at 12:59
3
$\begingroup$

Here, a very good article: http://machinelearningmastery.com/time-series-forecasting-supervised-learning/

In a few words, define a window of size n and that is the size of your feature vector. Reshape the dataset and play.

$\endgroup$
  • $\begingroup$ Actually I did not used sliding window method and trained my model. That was a disastrous mistake. The model trained well for the training time with X as the time feature :-P but predicted kinda average value for future times. Sliding window actually converts the time series into a supervised learning problem. \Thanks. $\endgroup$ – vizakshat Jun 15 '17 at 7:57
1
$\begingroup$

I used to solve the value error: model = svm.SVR().fit(np.transpose(np.matrix(df['Dates'])),np.transpose(np.matrix(df['sie'])))

More Info: https://stackoverflow.com/questions/30813044/sklearn-found-arrays-with-inconsistent-numbers-of-samples-when-calling-linearre

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.