数据科学

数据科学专业人员,机器学习专家以及有兴趣了解该领域的人员的问答

1
Keras的fit函数的validation_split参数如何工作?
在https://keras.io/models/sequential/上记录了Keras顺序模型拟合函数中的验证拆分: validation_split:在0到1之间浮动。要用作验证数据的训练数据的分数。模型将分开训练数据的这一部分,不对其进行训练,并且将在每个时期结束时评估此数据的损失和任何模型度量。在改组之前,从提供的x和y数据中的最后一个样本中选择验证数据。 请注意最后一行: 在改组之前,从提供的x和y数据中的最后一个样本中选择验证数据。 这是否意味着验证数据始终是固定的,并且取自主数据集的底部? 有什么办法可以从主数据集中随机选择给定的数据部分?

2
为什么同时使用验证集和测试集?
考虑一个神经网络: 对于给定的数据集,我们将其分为训练,验证和测试集。假设我们以经典的60:20:20的比例进行操作,然后通过在验证集上检查网络来验证网络,以防止过度拟合。那么,需要在测试仪上对其进行测试以检查其性能吗? 测试集上的错误与验证集上的错误会不会有些相同,因为对于网络来说,它是一个看不见的数据,就像验证集一样,并且两者的数量都相同? 相反,我们不能通过将测试集合并到训练集上来增加训练集,以使我们拥有更多的训练数据并且网络训练得更好,然后使用验证集来防止过度拟合吗?我们为什么不这样做呢?

3
训练深度学习模型时如何计算小批量记忆影响?
我正在尝试根据Andrej Karphaty的以下注释计算GPU训练模型所需的内存量:http ://cs231n.github.io/convolutional-networks/#computational-considerations 我的网络有532,752个激活和19,072,984个参数(权重和偏差)。这些都是32位浮点值,因此每个值占用4个字节的内存。 我的输入图像是180x50x1(宽度x高度x深度)= 9,000个 float 32值。我不使用图像增强,因此我认为杂项内存仅与最小批处理大小有关。我使用的是128张图像的小批量。 根据Andrej的建议,我得到以下内存大小: 激活: 532,752 * 4 /(1024 ^ 2)= 2.03 MB 参数: 19,072,984 * 4 /(1024 ^ 2)* 3 = 218.27 MB 杂项: 128 * 9,000 * 4 /(1024 ^ 2)= 4.39 MB 因此,训练该网络的总内存为224,69 MB。 我正在使用TensorFlow,但我想缺少一些东西。我还没有参加培训,但是我很确定(根据过去的经验)正在使用的内存将比我计算的要高得多。 如果对于小批量中的每个图像,TensorFlow保持其梯度,以便稍后可以对它们进行归一化以进行单个权重/偏差更新步骤,那么我认为内存应考虑另一个532,752 * 128值(每个图像中的梯度)小批量)。如果真是这样,那么我需要更多260.13 MB来训练具有128张图像/微型批处理的模型。 您可以帮助我理解训练深度学习模型的内存注意事项吗?以上考虑对吗?

4
关于功能数量与实例数量的任何“经验法则”吗?(小数据集)
我想知道,在特征数量与观察数量之间是否有启发式方法?显然,如果特征数量等于观测值数量,则模型将过拟合。通过使用稀疏方法(LASSO,弹性网),我们可以删除一些特征以简化模型。 我的问题是(理论上):在我们使用度量来评估模型选择之前,是否存在将最佳特征数量与观察数量相关联的经验观察? 例如:对于每个类中有20个实例的二进制分类问题,要使用的特征数量是否有上限?

2
使用协作过滤功能向电影推荐其他功能
我正在尝试使用协作过滤来建立推荐系统。我有通常的[user, movie, rating]信息。我想合并一个附加功能,例如“语言”或“电影时长”。我不确定我可以使用什么技术来解决这个问题。 请在python / R中建议参考或软件包。

2
如何提高分类器的准确性?
我正在使用OpenCV letter_recog.cpp示例来对随机树和其他分类器进行实验。此示例具有六个分类器的实现-随机树,boosting,MLP,kNN,朴素贝叶斯和SVM。使用具有20000个实例和16个功能的UCI字母识别数据集,我将其分为两半进行训练和测试。我具有SVM的经验,因此我迅速将其识别错误设置为3.3%。经过一些试验,我得到的是: UCI字母识别: RTrees-5.3% 提升-13% MLP-7.9% kNN(k = 3)-6.5% 贝叶斯-11.5% 支持向量机-3.3% 使用的参数: RTrees-max_num_of_trees_in_the_forrest = 200,max_depth = 20,min_sample_count = 1 提升-boost_type = REAL,weak_count = 200,weight_trim_rate = 0.95,max_depth = 7 MLP-method = BACKPROP,param = 0.001,max_iter = 300(默认值-太慢无法进行实验) kNN(k = 3)-k = 3 贝叶斯-无 SVM-RBF内核,C = 10,gamma = 0.01 之后,我使用相同的参数并通过首先提取梯度特征(向量大小为200个元素)对Digits和MNIST数据集进行了测试: 位数: RTrees-5.1% 提升-23.4% …

5
选择二进制分类算法
我有一个二进制分类问题: 训练集中约有1000个样本 10个属性,包括二进制,数字和分类 哪种算法是解决此类问题的最佳选择? 默认情况下,我将从SVM(将标称属性值转换为二进制特征的初步方法)开始,因为它被认为是相对干净和无噪声数据的最佳选择。

1
深度神经网络-使用ReLU进行反向传播
我在使用ReLU进行反向传播时遇到了一些困难,并且做了一些工作,但是我不确定自己是否走对了。 成本函数:12(y−y^)212(y−y^)2\frac{1}{2}(y-\hat y)^2,其中yyy是真正的值,并且 ÿ是一个预测值。还要假设x> 0总是。y^y^\hat yxxx 1层ReLU,其中第一层的权重为w1w1w_1 dCdw1=dCdRdRdw1dCdw1=dCdRdRdw1\frac{dC}{dw_1}=\frac{dC}{dR}\frac{dR}{dw_1} dCw1=(y−ReLU(w1x))(x)dCw1=(y−ReLU(w1x))(x)\frac{dC}{w_1}=(y-ReLU(w_1x))(x) 2层ReLU,其中第一层的权重为w2w2w_2,第二层的权重为w1w1w_1,我想更新第一层的权重w2w2w_2 dCdw2=dCdRdRdw2dCdw2=dCdRdRdw2\frac{dC}{dw_2}=\frac{dC}{dR}\frac{dR}{dw_2} dCw2=(y−ReLU(w1∗ReLU(w2x))(w1x)dCw2=(y−ReLU(w1∗ReLU(w2x))(w1x)\frac{dC}{w_2}=(y-ReLU(w_1*ReLU(w_2x))(w_1x) 由于ReLU(w1∗ReLU(w2x))=w1w2xReLU(w1∗ReLU(w2x))=w1w2xReLU(w_1*ReLU(w_2x))=w_1w_2x 3层ReLU,其中第一层的权重为,第二层的权重为w 2和第三层的权重为w 1w3w3w_3w2w2w_2w1w1w_1 dCdw3= dCd[Rd[Rdw3dCdw3=dCd[Rd[Rdw3\frac{dC}{dw_3}=\frac{dC}{dR}\frac{dR}{dw_3} dCw3=(y−ReLU(w1∗ReLU(w2(∗ReLU(w3)))(w1w2x)dCw3=(y−[RË大号ü(w1∗[RË大号ü(w2(∗[RË大号ü(w3)))(w1w2X)\frac{dC}{w_3}=(y-ReLU(w_1*ReLU(w_2(*ReLU(w_3)))(w_1w_2x) 由于ReLU(w1∗ReLU(w2(∗ReLU(w3))=w1w2w3xReLU(w1∗ReLU(w2(∗ReLU(w3))=w1w2w3xReLU(w_1*ReLU(w_2(*ReLU(w_3))=w_1w_2w_3x 由于链规则仅持续2个导数,而S型曲线则可能长达个层。nnn 假设我想更新所有3层权重,其中是第三层,w 2是第二层,w 1是第三层w1w1w_1w2w2w_2w1w1w_1 dCw1=(y−ReLU(w1x))(x)dCw1=(y−ReLU(w1x))(x)\frac{dC}{w_1}=(y-ReLU(w_1x))(x) dCw2=(y−ReLU(w1∗ReLU(w2x))(w1x)dCw2=(y−ReLU(w1∗ReLU(w2X))(w1X)\frac{dC}{w_2}=(y-ReLU(w_1*ReLU(w_2x))(w_1x) dCw3=(y−ReLU(w1∗ReLU(w2(∗ReLU(w3)))(w1w2x)dCw3=(y−ReLU(w1∗ReLU(w2(∗ReLU(w3)))(w1w2x)\frac{dC}{w_3}=(y-ReLU(w_1*ReLU(w_2(*ReLU(w_3)))(w_1w_2x) 如果这个推导是正确的,那么如何防止消失呢?与Sigmoid相比,Sigmoid在方程式中有很多乘以0.25,而ReLU没有任何常数值乘法。如果有成千上万的图层,则由于权重会产生很多乘法,那么这会不会导致梯度消失或爆炸?

5
扩大seaborn热图
我corr()用原始df 创建了df。该corr()DF出来70×70,这是不可能的可视化热图... sns.heatmap(df)。如果我尝试显示corr = df.corr(),则表格不适合屏幕,并且我可以看到所有相关性。它是打印整个df大小而不管其大小还是控制热图大小的方法吗?
17 visualization  pandas  plotting  machine-learning  neural-network  svm  decision-trees  svm  efficiency  python  linear-regression  machine-learning  nlp  topic-model  lda  named-entity-recognition  naive-bayes-classifier  association-rules  fuzzy-logic  kaggle  deep-learning  tensorflow  inception  classification  feature-selection  feature-engineering  machine-learning  scikit-learn  tensorflow  keras  encoding  nlp  text-mining  nlp  rnn  python  neural-network  feature-extraction  machine-learning  predictive-modeling  python  r  linear-regression  clustering  r  ggplot2  neural-network  neural-network  training  python  neural-network  deep-learning  rnn  predictive-modeling  databases  sql  programming  distribution  dataset  cross-validation  neural-network  deep-learning  rnn  machine-learning  machine-learning  python  deep-learning  data-mining  tensorflow  visualization  tools  sql  embeddings  orange  feature-extraction  unsupervised-learning  gan  machine-learning  python  data-mining  pandas  machine-learning  data-mining  bigdata  apache-spark  apache-hadoop  deep-learning  python  convnet  keras  aggregation  clustering  k-means  r  random-forest  decision-trees  reference-request  visualization  data  pandas  plotting  neural-network  keras  rnn  theano  deep-learning  tensorflow  inception  predictive-modeling  deep-learning  regression  sentiment-analysis  nlp  encoding  deep-learning  python  scikit-learn  lda  convnet  keras  predictive-modeling  regression  overfitting  regression  svm  prediction  machine-learning  similarity  word2vec  information-retrieval  word-embeddings  neural-network  deep-learning  rnn 

4
将tfrecord文件拆分为碎片有什么好处?
我正在使用Tensorflow进行语音识别,并计划使用海浪数据集训练LSTM NN。由于性能提高,我计划使用tfrecords。互联网上有几个示例(例如Inception),其中tfrecords文件被拆分为多个碎片。我的问题是:将tfrecords文件放入分片有什么好处?此拆分是否有其他性能提升?

5
在机器学习中合并稀疏和密集的数据以提高性能
我有可预测的稀疏特征,也有一些也可预测的密集特征。我需要将这些功能结合在一起,以提高分类器的整体性能。 现在,当我尝试将它们组合在一起时,稠密特征往往比稀疏特征更占主导地位,因此与仅具有稠密特征的模型相比,AUC仅改善了1%。 有人遇到过类似的问题吗?非常感谢您的投入,有点卡住。我已经尝试了许多不同的分类器,分类器的组合,特征转换以及使用不同算法的处理。 先谢谢您的帮助。 编辑: 我已经尝试了评论中给出的建议。我观察到的是,对于几乎45%的数据,稀疏特征的性能确实很好,只有稀疏特征的AUC约为0.9,而对于其余稠密特征,AUC约为0.75的性能很好。我尝试将这些数据集分离出来,但得到的AUC为0.6,因此,我不能简单地训练模型并确定要使用的功能。 关于代码段,我已经尝试了很多东西,以至于我不确定要分享什么:(


2
我们也应该对测试数据应用归一化吗?
我正在做一个关于作者识别问题的项目。我已经将tf-idf规范化用于训练数据,然后在该数据上训练了一个svm。 现在,当使用分类器时,我也应该标准化测试数据。我认为规范化的基本目的是使学习算法在学习时更加重视更重要的功能。因此,一旦经过培训,它就已经知道哪些功能很重要,哪些功能不重要。那么,是否还需要将规范化应用于测试数据? 我是这个领域的新手。因此,请忽略该问题是否显得愚蠢?



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.