机器学习
文章平均质量分 74
D0644727
这个作者很懒,什么都没留下…
展开
-
每年月初买入,年末卖出,策略实现
#前置的利用tushare来获取数据到df中省略df_month=df.resample("M").first()#将df中的股票价格筛选为每月月初的价格df_year=df.resample("A").last()[:-1]#将df中的股票价格筛选为每年年末的价格,由于2020年的年末收盘价不知道,需要用到[:-1]price_last=df['price'][-1]#忽略交易手续费cost=0 #购买本金hold=0 #持股数for year in range(2001,2021):原创 2020-11-25 11:30:43 · 186 阅读 · 0 评论 -
带有时间的表格数据的处理(df.resample)量化交易
子函数功能df.resample(“M”).sum将每年中,月份相同的每列数据进行加和打印,.mean()也是如此df.resample(“MS”).first()将每个月中第一天交易日的数据打印出来(会出现打印出来的日期和实际 的交易日期不相符的情况,但是对应的开盘收盘价格仍然是对的,见图一图二)df.resample(“A”).first()将每年的第一个交易日的数据打印出来图一图二...原创 2020-11-25 11:17:22 · 3073 阅读 · 0 评论 -
将pandas生成的数据处理
保留表格中带有特定元素的行。import pandas as pd st=pd.read_csv('test\st.csv')st_removed=st[st['remove_dt'].isin('inf')]st_removed.to_csv('./st_removed.csv')这里面用到了isin函数,该段代码实现了将st.csv中remove_dt列中带有inf的行保留的功能,其他行都删除。注意‘inf’外面一定要加上[],这样才能形成列表。剔除表格中带有特定元素的行impor原创 2020-11-24 20:17:52 · 127 阅读 · 0 评论 -
LSTM、GRU内容整理
LSTM他的整体数据处理过程可以用这张图来展示:利用tensorflow来实现的过程中,需要将整个过程这样描述。一般在中间层需要输出ht。GRU网络是LSTM 的优化。原创 2020-11-20 15:26:07 · 144 阅读 · 0 评论 -
卷积神经网络
卷积神经网络其实就是特征提取器。在大量输入的数据特征之后,为了防止过拟合,需要先用卷积神经网络对参数进行特征提取。他可以总结为,卷积(Convolutional)、批标准化(Batch Normalization),激活(Activition),池化(Pool)、(Dropout)卷积过程以输入特征为图片的情况为例,一般会有一个与输入维数匹配的卷积核按照指定步长,在输入特征范围内进行滑动,遍历输入特征里面的每个像素点。每滑动一个步长,会与输入特征图部分像素重合,重合区域对应元素相乘、求和,并加上偏置原创 2020-11-18 17:00:07 · 223 阅读 · 0 评论 -
如何用已搭建好的模型来进行数字图片识别
from PIL import Imageimport numpy as npimport tensorflow as tfmodel_save_path = './checkpoint/mnist.ckpt'#复现模型框架,这样训练好的参数才能有通路model = tf.keras.models.Sequential([ tf.keras.layers.Flatten(), tf.keras.layers.Dense(128, activation='relu'), t原创 2020-11-18 12:19:55 · 474 阅读 · 0 评论 -
快速搭建神经网络模型的模板
1.imort输入相应数据库2.train,test输入训练集特征及标签,和测试集3.model=tf.keras.medels.Sequential()在Sequential中逐层描述每层网络。这是一个封装了神经网络结构的一个容器。几种网络结构的举例#拉直层tf.keras.layers.Flatten()#拉直层,不参与计算,只是实现一种输入数据的形态转换。#全连接层tf.keras.layers.Dense(神经元个数,activation="激活函数(relu,softmax原创 2020-11-15 17:58:29 · 731 阅读 · 0 评论 -
如何保存调用机器学习中的训练结果
以mnist数据集的训练结果保存与调用为例子:模型读取load_weights(路径文件名)一般在形成ckpt文件过程中常常会出现索引,因此可用于判断是否可以直接加载模型。checkpoint_save_path = "./checkpoint/mnist.ckpt"if os.path.exists(checkpoint_save_path + '.index'): print('-------------load the model-----------------') mod原创 2020-11-15 17:47:04 · 1099 阅读 · 0 评论 -
mnist对数字识别的训练代码
MNIST数据集一共有7万张图片,是28×28像素的0到9手写数字数据集,其中6万张用于训练,1万张用于测试。每张图片包括784(28×28)个像素点,使用全连接网络时可将784个像素点组成长度为784的一维数组,作为输入特征。数据集图片如下所示。import tensorflow as tfmnist = tf.keras.datasets.mnist(x_train, y_train), (x_test, y_test) = mnist.load_data()x_train, x_test原创 2020-11-15 14:07:34 · 201 阅读 · 0 评论 -
损失函数的三种定义方法
损失函数的三种定义方式:mse:mean squared errorcrossentropy自定义均方误差法:loss_mse=tf.reduce_mean(tf.square(y_-y)tensorflow中的一个预测函数 :tf.where(tf.greater(a,b), C ,D)this is a simple way to realize the discription of judgement and a selected output. If a>b, th原创 2020-11-14 20:58:23 · 1713 阅读 · 0 评论 -
常见激活函数的汇总
激活函数tf.nn.sigmoid(x)相当于对数据进行归一化,但是在实际应用过程中,他的导数在0-0.25之间,并且他在多级级联的时候会造成梯度的消失,因此在实际应用过程中很少应用。并且逆运算为指数,在反向传播过程中耗时tf.math.tanh(x)tf.nn.relu()反向传播过程中会出现由于出现负数不能激活神经元,导致其“死亡”的情况。tf.nn.leak_relu(x)初学者的激活函数的选择建议:1.首选relu激活函数2.学习率设置较小的值3.输入特征标准化,即让原创 2020-11-14 20:57:32 · 242 阅读 · 0 评论 -
机器学习中一些需要掌握的函数(二)
tf.where()这个函数用于判断,若条件为真,返回A,条件语句假,返回B。张量中可以将各个模块拆分开来最后打印到一起。例如:import tensorflow as tfa = tf.constant([1, 2, 3, 1, 1])b = tf.constant([0, 1, 3, 4, 5])c = tf.where(tf.greater(a, b), a, b) # 若a>b,返回a对应位置的元素,否则返回b对应位置的元素print("c:", c)最后输出的结果为:原创 2020-11-13 16:53:34 · 242 阅读 · 0 评论 -
学习率的动态优化
import tensorflow as tfw = tf.Variable(tf.constant(5, dtype=tf.float32))epoch = 40LR_BASE = 0.2 # 最初学习率LR_DECAY = 0.99 # 学习率衰减率LR_STEP = 1 # 喂入多少轮BATCH_SIZE后,更新一次学习率for epoch in range(epoch): # for epoch 定义顶层循环,表示对数据集循环epoch次,此例数据集数据仅有1个w,初始化时原创 2020-11-13 14:22:15 · 151 阅读 · 0 评论 -
tensorflow常用函数(一)
强制数据类型的转换:tf.cast(张量名,dtype=数据类型)此外,还有打印张量维度上元素进行处理的函数。如,最大值最小值的函数。axis=0 沿着经度方向操作,axis=1沿着维度方向操作。tf.reduce_min(张量名,axis=操作轴)#打印张量一个方向上的上元素的最小值tf.reduce_max(张量名,axis=1)#打印张量精度方向上元素的最大值,所有维度上的最大值。tf.reduce_mean(张量名,axis=操作轴)#计算张量沿着指定维度上的均值tf.reduce_原创 2020-11-12 23:05:15 · 220 阅读 · 0 评论 -
张量学习笔记11.10
张量:用于表示多维数组,几个方括号就代表几阶,比如[[1,2],[2]]是一个二阶的,又叫做矩阵数据类型:tf.float tf.int tf.bool(tf.constant([True,False]) tf.string 尝试创建一个张量:import tensorflow as tf a=tf.constant([1,5],dtype=tf.int64)#输入一个整形向量print(a)#张量的所有信息print(a.shape) #打印维数print(a.dtype)#打原创 2020-11-11 07:54:29 · 243 阅读 · 0 评论