关注我们,每周发布最新的笔面试题目和解析
记得设为星标哦
前言
面向研究类的笔试题目,主要是数理统计和编程题,本次笔试时长三小时,整体五个题,分别是魔法跳棋、金融数据计算、机器学习题、数学题、物理题,本次给出其中的两题,剩下的题及全部解答在知识星球中获取。
暑期实习和笔试也陆陆续续开始了,欢迎同学们在公众号后台投稿,你们的每条留言小编都会仔细查看。累计投稿4场将获得知识星球100元优惠券,也可原价直接加入。更全的笔面试资料及学习路线在知识星球中,会随着资源的积累不断涨价,早加入早学习早拿offer!
1【机器学习题】
现有一大小为 m*n 的股票数据集,其包含了多支股票多天的特征数据(一支股票每天可能有 1000-5000 行
数据,m 大于 1000000),前两列为时间和股票代码,后 n-2 列为特征,现在想要对其作 1D-CNN 的回归训练(假设 kernel 个数为 1,kernel size 为 3),请简要描述该如何进行数据处理及模型训练,并画出 CNN 流
程图(每一层之间如何转化)。
【参考思路】
为了将这个大规模的股票数据集应用于1D-CNN的回归训练,需要进行以下数据处理和模型训练步骤:
数据处理步骤
1.数据清洗与预处理:
检查并处理缺失值和异常值。
对时间和股票代码进行编码(如可以将时间转换为时间戳,将股票代码转换为整数编码)。
2.数据归一化:
对后n-2列特征进行归一化处理,例如使用Min-Max归一化或标准化,以确保特征值在相同范围内。
3.生成样本:
将时间序列数据生成固定长度的滑动窗口样本。例如,对于每只股票,采用窗口大小为3的滑动窗口,从而生成特征矩阵。假设每个窗口包含3天的数据,特征列数为n-2。
4.数据分割:
将数据集划分为训练集、验证集和测试集。
模型训练步骤
1.模型定义:
定义1D-CNN模型,包括卷积层、池化层、全连接层和输出层。
2.模型编译:
编译模型,选择适当的损失函数(如均方误差)和优化器(如Adam)。
3.模型训练:
使用训练集数据进行模型训练,并使用验证集数据进行验证。可以采用早停法以避免过拟合。
4.模型评估:
使用测试集数据评估模型性能。
CNN流程图
输入层
|
| [input_shape=(window_size, n_features)]
v
1D卷积层 (kernel_size=3, filters=1)
|
| [output_shape=(window_size-2, 1)]
v
全连接层 (units=1)
|
| [output_shape=(1)]
v
输出层
数据处理代码示例(Python)
import numpy as np
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv1D, Dense, Flatten
# 读取数据
data &#