gpt4 book ai didi

python - AttributeError - 即使似乎没有属性错误

转载 作者:行者123 更新时间:2023-11-30 09:19:29 25 4
gpt4 key购买 nike

我目前正在学习如何使用 python 进行机器学习。当我进行操作时,解释器检测到了 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 是 pandas Timestamp 对象,而不是 python datetime 对象。不过,它确实有一个类似 datetime.timetuple() 的函数。试试这个:

假设 last_date 采用 UTC 格式,请使用:

import calendar

...
last_date = df.iloc[-1].name
last_unix = calendar.timegm(last_date.timetuple())

如果last_date位于您本地的时区,请使用:

import time

...
last_date = df.iloc[-1].name
last_unix = time.mktime(last_date.timetuple())

关于python - AttributeError - 即使似乎没有属性错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45291921/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com