我正在编写一些代码来使用机器学习和深度学习技术来预测股市。但是,当我尝试使用线性回归时,出现了我似乎无法修复的错误。 我的数据是某家公司的股票。功能包括日期,未平仓,低价,最高价,收盘价,最后价,成交量和总交易量。
我已经在关于stackoverflow的问题上找到了类似的答案,但是他们使用的技术无法正常工作。
#setting index as date
df['Date'] = pd.to_datetime(df.Date,format='%Y-%m-%d')
df.index = df['Date']
#sorting
data = df.sort_index(ascending=True, axis=0)
#creating a separate dataset
new_data = pd.DataFrame(index=range(0,len(df)),columns=['Date',
'Close'])
for i in range(0,len(data)):
new_data['Date'][i] = data['Date'][i]
new_data['Close'][i] = data['Close'][i]
#split into train and test data
train = df[:130]
test = df[130:]
x_train = train.drop('Close', axis=1)
y_train = train['Close']
x_test = test.drop('Close', axis=1)
y_test = test['Close']
#implement linear regression
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(x_train,y_train)
最后一行抛出此错误:
TypeError:float()参数必须是字符串或数字,而不是 “时间戳记”
答案 0 :(得分:0)
数据帧df的索引设置为等于Date。完成sort_index()步骤后,请尝试将其删除。
在sort_index步骤之后,执行以下操作:
df = df.reset_index(drop=True)
然后将df分成训练测试,然后进行回归步骤。 也许这会有所帮助。