我目前正在學習如何python的機器學習。當我正在進步時,解釋器檢測到AttributeError,但我沒有看到任何問題。有人可以幫助解決這個錯誤?AttributeError - 即使似乎沒有屬性錯誤
我的代碼:
import pandas as pd
import quandl, math
import numpy as np
import datetime
import matplotlib.pyplot as plt
from matplotlib import style
from sklearn import preprocessing, cross_validation, svm
from sklearn.linear_model import LinearRegression
style.use('ggplot')
quandl.ApiConfig.api_key = ''
df = quandl.get('EOD/V', api_key = '')
df = df[['Adj_Open','Adj_High','Adj_Low','Adj_Close','Adj_Volume',]]
df['ML_PCT'] = (df['Adj_High'] - df['Adj_Close'])/df['Adj_Close'] * 100.0
df['PCT_change'] = (df['Adj_Close'] - df['Adj_Open'])/df['Adj_Open'] * 100.0
df = df[['Adj_Close', 'ML_PCT', 'PCT_change', 'Adj_Volume']]
forecast_col = 'Adj_Close'
df.fillna(value=-99999, inplace=True)
forecast_out = int(math.ceil(0.01 * len(df)))
df['label'] = df[forecast_col].shift(-forecast_out)
X = np.array(df.drop(['label'], 1))
X = preprocessing.scale(X)
X = X[:-forecast_out]
df.dropna(inplace=True)
y = np.array(df['label'])
X_train, X_test, y_train, y_test = cross_validation.train_test_split(X, y, test_size=0.2)
clf = LinearRegression(n_jobs=-1)
clf.fit(X_train, y_train)
confidence = clf.score(X_test, y_test)
print(confidence)
X_lately = X[-forecast_out:]
forecast_set = clf.predict(X_lately)
print(forecast_set, confidence, forecast_out)
df['Forecast'] = np.nan
last_date = df.iloc[-1].name
last_unix = last_date.timestamp()
one_day = 86400
next_unix = last_unix + one_day
for i in forecast_set:
next_date = datetime.datetime.fromtimestamp(next_unix)
next_unix += 86400
df.loc[next_date] = [np.nan for _ in range(len(df.columns)-1)]+[i]
df['Adj_Close'].plot()
df['Forecast'].plot()
plt.legend(loc = 4)
plt.xlabel('Date')
plt.ylabel('Price')
plt.show()
錯誤:
C:\Python27\lib\site-packages\sklearn\cross_validation.py:44: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.
"This module will be removed in 0.20.", DeprecationWarning)
0.989124557421
(array([ 94.46383723, 93.27713267, 93.15533011, 93.89038799,
94.71390166, 95.29332756, 96.23047821, 96.51527839,
96.17180986, 96.17575181, 96.68721678, 96.85114045,
97.57455941, 97.98680762, 97.32961443, 97.55881174,
97.54090546, 96.17175855, 94.95430597, 96.49002102,
96.82364097, 95.63098589, 95.61236103, 96.24114818])Traceback (most recent call last):, 0.98912455742140903, 24)
File "C:\Users\qasim\Documents\python_machine_learning\regression.py", line 47, in <module>
last_unix = last_date.timestamp()
AttributeError: 'Timestamp' object has no attribute 'timestamp'
[Finished in 36.6s]
看來的'數據類型last_date'是已經在'timestamp'中 – ksai
如果你打算把它轉換成UNIX的時候,你可以使用這個https://stackoverflow.com/a/19801863/16959 –
這非常類似於https://stackoverflow.com/questions/43996754/AttributeError的-numpy的-的int64-對象具有-NO-ATT ribute-timestamp-in-python-3-5 – frozen