特征构建
#下面我们来定义一个用于分类的函数,给数据表增加三个字段
首先是开盘价减收盘价,命名为‘Open-Close’
其次是最高价减最低价,命名为‘High-Low’
def classification_tc(df):
df['Open-Close'] = df['open'] - df['close']
df['High-Low'] = df['high'] - df['low']
#在添加一个target字段,如果次日收盘价高于当日收盘价,则标记为1,反之为0
df['target'] = np.where(df['close'].shift(-1)>df['close'], 1, 0)
#去掉有空值的行
df = df.dropna()
#将‘Open-Close’和‘High-Low’作为数据集的特征
X = df[['Open-Close', 'High-Low']]
#将target赋值给y
y = df['target']
#将处理好的数据表以及X与y进行返回
return(df,X,y)
下面定义一个用于回归的函数
特征的添加和分类函数类似
只不过target字段改为次日收盘价减去当日收盘价
下面定义一个用于回归的函数
特征的添加和分类函数类似
只不过target字段改为次日收盘价减去当日收盘价
def regression_tc(df):
df['Open-Close'] = df['open'] - df['close']
df['High-Low'] = df['high'] - df['low']
df['target'] = df['close'].shift(-1) - df['close']
df = df.dropna()
X = df[['Open-Close', 'High-Low']]
y = df['target']
#将处理好的数据表以及X与y进行返回
return(df,X,y)
使用classification_tc函数生成数据集的特征与目标
from sklearn.model_selection import train_test_split
df, X, y = classification_tc(zgpa)
将数据集拆分为训练集与验证集
X_train, X_test, y_train, y_test =\
train_test_split(X, y, shuffle=False,train_size=0.8)
shuffle=False表示安装顺序进行划分,因为股市具有时间性,只能用前面的数据训练后面的数据。