sklearn怎么加入caffe 自定义损失函数数

相关文章推荐
这篇博文将详细讲下sklearn.preprocessing包是如何对数据进行预处理的,全文翻译自sklearn.preprocessing,并且加上了我自己的一些见解。
sklearn.prepr...
本篇博客主要借鉴的是/chaosimple/p/4153167.html
这位大牛的博客,最近在学习sklearn,写算法基本上都会用到标准化, 数据标准...
一、标准化(Z-Score),或者去除均值和方差缩放
公式为:(X-mean)/std
计算时对每个属性/每列分别进行。
将数据按期属性(按列进行)减去其均值,并处以其方差。得到的结果是...
sklearn Release 0.17
Welcome to scikit-learn
Installing scikit-learn 安装sklearn
Frequen...
使用sklearn进行集成学习
movie_metadata.csv
代码# -*- coding: utf-8 -*-
Created on Tue May 09 10:57:24 2017随机森林模型预测imdb...
1 Random Forest和Gradient Tree Boosting参数详解
2 如何调参?
  2.1 调参的目标:偏差和方差的协调
  2.2 参数对整体模型性能的影响
  2.3 一个朴...
2 集成学习是什么?
3 偏差和方差
  3.1 模型的偏差和方差是什么?
  3.2 bagging的偏差和方差
  3.3 boosting的偏差和方差
  3.4 ...
转自/jasonfreak/p/5657196.html
适合初学者,第四部分的公式没有仔细研究,前3部分通俗易懂
2 集成学习是什...
1 Random Forest和Gradient Tree Boosting参数详解
2 如何调参?
  2.1 调参的目标:偏差和方差的协调
  2.2 参数对整体模型性能的影响
他的最新文章
讲师:董晓杰
讲师:姚远
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)我得到下列错误在使用自定义的目标函数,使用 TensorFlow 编写的 Keras 序列模型的阶段合适。
File "basicCNN.py", line 110, in &module&
callbacks=[TensorBoard(log_dir="./logs/{}".format(now))])
File "/home/garethjones/.local/lib/python2.7/site-packages/keras/models.py", line 664, in fit
sample_weight=sample_weight)
File "/home/garethjones/.local/lib/python2.7/site-packages/keras/engine/training.py", line 1115, in fit
self._make_train_function()
File "/home/garethjones/.local/lib/python2.7/site-packages/keras/engine/training.py", line 713, in _make_train_function
self.total_loss)
File "/home/garethjones/.local/lib/python2.7/site-packages/keras/optimizers.py", line 391, in get_updates
m_t = (self.beta_1 * m) + (1. - self.beta_1) * g
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/math_ops.py", line 813, in binary_op_wrapper
y = ops.convert_to_tensor(y, dtype=x.dtype.base_dtype, name="y")
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 669, in convert_to_tensor
ret = conversion_func(value, dtype=dtype, name=name, as_ref=as_ref)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/constant_op.py", line 176, in _constant_tensor_conversion_function
return constant(v, dtype=dtype, name=name)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/constant_op.py", line 165, in constant
tensor_util.make_tensor_proto(value, dtype=dtype, shape=shape, verify_shape=verify_shape))
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/tensor_util.py", line 360, in make_tensor_proto
raise ValueError("None values not supported.")
这是我的自定义函数 def PAI(y_true, y_pred, k):
y_true (tensor): (batch x numCells)
y_pred (tensor): (batch x numCells)
k: The optimal number of hotspots
cfsRatio (tensor): The inverse of the percentage of crimes in hotspots per observation
# Compute total crime for each obs
totalCFS =
tf.reduce_sum(y_true,
# batch x 1
# Flatten for gather
flatTruth = tf.reshape(y_true, [-1])
# 1 x batch * numCells
# Select top candidate cells
_, predHS = tf.nn.top_k(y_true, k)
# Convert indices for gather
predHSFlat = tf.range(0, tf.shape(y_true)[0]) * tf.shape(y_true)[1] + predHS
# Map hotspot predictions to crimes
hsCFS = tf.gather(flatTruth, predHSFlat)
# Number of crimes commited in hotspots
hsCFSsum = tf.reduce_sum(hsCFS, axis=1) # batch x 1
# Ratio of crimes committed in hotspots and inverted for minimization
cfsRatio = tf.truediv(1.0, tf.truediv(hsCFSsum, totalCFS))
return cfsRatio
我能跑这当我有交互式会话。该函数主要依赖于代码从这 Tensorflow 问题 .
显示/隐藏原文
I get the following error in the fit stage of a Keras sequential model using a custom objective function written using TensorFlow.
File "basicCNN.py", line 110, in &module&
callbacks=[TensorBoard(log_dir="./logs/{}".format(now))])
File "/home/garethjones/.local/lib/python2.7/site-packages/keras/models.py", line 664, in fit
sample_weight=sample_weight)
File "/home/garethjones/.local/lib/python2.7/site-packages/keras/engine/training.py", line 1115, in fit
self._make_train_function()
File "/home/garethjones/.local/lib/python2.7/site-packages/keras/engine/training.py", line 713, in _make_train_function
self.total_loss)
File "/home/garethjones/.local/lib/python2.7/site-packages/keras/optimizers.py", line 391, in get_updates
m_t = (self.beta_1 * m) + (1. - self.beta_1) * g
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/math_ops.py", line 813, in binary_op_wrapper
y = ops.convert_to_tensor(y, dtype=x.dtype.base_dtype, name="y")
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 669, in convert_to_tensor
ret = conversion_func(value, dtype=dtype, name=name, as_ref=as_ref)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/constant_op.py", line 176, in _constant_tensor_conversion_function
return constant(v, dtype=dtype, name=name)
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/constant_op.py", line 165, in constant
tensor_util.make_tensor_proto(value, dtype=dtype, shape=shape, verify_shape=verify_shape))
File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/tensor_util.py", line 360, in make_tensor_proto
raise ValueError("None values not supported.")
My custom function is this
def PAI(y_true, y_pred, k):
y_true (tensor): (batch x numCells)
y_pred (tensor): (batch x numCells)
k: The optimal number of hotspots
cfsRatio (tensor): The inverse of the percentage of crimes in hotspots per observation
# Compute total crime for each obs
totalCFS =
tf.reduce_sum(y_true,
# batch x 1
# Flatten for gather
flatTruth = tf.reshape(y_true, [-1])
# 1 x batch * numCells
# Select top candidate cells
_, predHS = tf.nn.top_k(y_true, k)
# Convert indices for gather
predHSFlat = tf.range(0, tf.shape(y_true)[0]) * tf.shape(y_true)[1] + predHS
# Map hotspot predictions to crimes
hsCFS = tf.gather(flatTruth, predHSFlat)
# Number of crimes commited in hotspots
hsCFSsum = tf.reduce_sum(hsCFS, axis=1) # batch x 1
# Ratio of crimes committed in hotspots and inverted for minimization
cfsRatio = tf.truediv(1.0, tf.truediv(hsCFSsum, totalCFS))
return cfsRatio
I can run this when I have an interactive session. The function primarily relies on code from this Tensorflow issue
该问题尚无回答
友情链接:相关文章推荐
之前做二分类预测的时候,遇到了正负样本比例严重不平衡的情况,甚至有些比例达到了50:1,如果直接在此基础上做预测,对于样本量较小的类的召回率会极低,这类不平衡数据该如何处理呢?不平衡数据的定义顾名思义...
转载自://data-preprocessing/
常见的数据预处理方法,以下通过sklearn的preprocessing模块来介绍;
为了证实sklearn可以放到hadoop上使用,特别进行了本次试验,但试验中遇到一个疑问,就是reducer节点只能设置为1,那么跟单机训练是否一样了,这个问题目前无法解答。但是,sklearn确实...
Conda, Miniconda (Python)这是一个python定制的好工具。忙活了一整天,终于发现了它,这个工具可以让我们定制python和对应的第三方的库,方便我们在不同机器上执行这些第三方...
一个Windows操作系统能够使用的pythonIDE
winPython下载地址:WinPython_2.7
传统的F-measure或平衡的F-score (F1 score)是精度和召回的调...
0.概述朴素贝叶斯法基于贝叶斯定理与特征条件独立假设的分类方法。对于给定的训练数据集,首先基于特征条件独立假设学习输入/输出的联合概率分布;然后基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最...
单链表的直接插入排序排序思想跟数组的插入排序的思想是一样的。但是这里涉及到链表的插入删除等等,一些操作,实现起来还是稍微麻烦的。
链表的直接插入:
情况1:当前结点的值大于上一个结点的值,不用处理...
1 Random Forest和Gradient Tree Boosting参数详解
2 如何调参?
  2.1 调参的目标:偏差和方差的协调
  2.2 参数对整体模型性能的影响
  2.3 一个朴...
1 Random Forest和Gradient Tree Boosting参数详解
2 如何调参?
  2.1 调参的目标:偏差和方差的协调
  2.2 参数对整体模型性能的影响
2 集成学习是什么?
3 偏差和方差
  3.1 模型的偏差和方差是什么?
  3.2 bagging的偏差和方差
  3.3 boosting的偏差和方差
  3.4 ...
他的最新文章
讲师:董晓杰
讲师:姚远
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)『机器学习』—应用Sklearn机器学习的建议a year ago130收藏分享举报文章被以下专栏收录数据、策略和量化投资推荐阅读{&debug&:false,&apiRoot&:&&,&paySDK&:&https:\u002F\\u002Fapi\u002Fjs&,&wechatConfigAPI&:&\u002Fapi\u002Fwechat\u002Fjssdkconfig&,&name&:&production&,&instance&:&column&,&tokens&:{&X-XSRF-TOKEN&:null,&X-UDID&:null,&Authorization&:&oauth c3cef7c66aa9e6a1e3160e20&}}{&database&:{&Post&:{&&:{&isPending&:false,&contributes&:[{&sourceColumn&:{&lastUpdated&:,&description&:&一起学习量化分析,共享智慧与金融在大数据时代的红利!&,&permission&:&COLUMN_PUBLIC&,&memberId&:4264611,&contributePermission&:&COLUMN_PUBLIC&,&translatedCommentPermission&:&all&,&canManage&:true,&intro&:&数据、策略和量化投资&,&urlToken&:&uqer2015&,&id&:12545,&imagePath&:&27a9a862a06576c84fec.jpeg&,&slug&:&uqer2015&,&applyReason&:&0&,&name&:&量化哥&,&title&:&量化哥&,&url&:&https:\u002F\\u002Fuqer2015&,&commentPermission&:&COLUMN_ALL_CAN_COMMENT&,&canPost&:true,&created&:,&state&:&COLUMN_NORMAL&,&followers&:8955,&avatar&:{&id&:&27a9a862a06576c84fec&,&template&:&https:\u002F\\u002F{id}_{size}.jpeg&},&activateAuthorRequested&:false,&following&:false,&imageUrl&:&https:\u002F\\u002F27a9a862a06576c84fec_l.jpeg&,&articlesCount&:112},&state&:&accepted&,&targetPost&:{&titleImage&:&https:\u002F\\u002Fv2-0fd273c18ff2bddfaa9a967_r.jpg&,&lastUpdated&:,&imagePath&:&v2-0fd273c18ff2bddfaa9a967.jpg&,&permission&:&ARTICLE_PUBLIC&,&topics&:[3614],&summary&:&作者:量化投资与机器学习优矿研究部 原文链接:\u003Ca href=\&https:\u002F\u002Fuqer.io\u002Fcommunity\u002Fshare\u002Fe5bd\& data-title=\&【sklearn机器学习】——应用机器学习的建议 \& class=\&\&\u003E【sklearn机器学习】——应用机器学习的建议 \u003C\u002Fa\u003E 本文以 Andrew Ng 的《Advice for applying Machine Learning》为基础进行拓展。前言 以Bremen大学机器学习课程的教程为基础的,总结了使用机器学习解决新问题的…&,&copyPermission&:&ARTICLE_COPYABLE&,&translatedCommentPermission&:&all&,&likes&:0,&origAuthorId&:0,&publishedTime&:&T10:40:52+08:00&,&sourceUrl&:&&,&urlToken&:,&id&:1521818,&withContent&:false,&slug&:,&bigTitleImage&:false,&title&:&『机器学习』—应用Sklearn机器学习的建议&,&url&:&\u002Fp\u002F&,&commentPermission&:&ARTICLE_ALL_CAN_COMMENT&,&snapshotUrl&:&&,&created&:,&comments&:0,&columnId&:12545,&content&:&&,&parentId&:0,&state&:&ARTICLE_PUBLISHED&,&imageUrl&:&https:\u002F\\u002Fv2-0fd273c18ff2bddfaa9a967_r.jpg&,&author&:{&bio&:&心系二级的一级狗&,&isFollowing&:false,&hash&:&de78f6ab276ea&,&uid&:44,&isOrg&:false,&slug&:&hunterchen029&,&isFollowed&:false,&description&:&凡事都要讲道理&,&name&:&陈颖&,&profileUrl&:&https:\u002F\\u002Fpeople\u002Fhunterchen029&,&avatar&:{&id&:&v2-0391362dfaeff707ca54c19e046187fd&,&template&:&https:\u002F\\u002F50\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false},&memberId&:4264611,&excerptTitle&:&&,&voteType&:&ARTICLE_VOTE_CLEAR&},&id&:462094}],&title&:&『机器学习』—应用Sklearn机器学习的建议&,&author&:&hunterchen029&,&content&:&\u003Cp\u003E作者:量化投资与机器学习优矿研究部
原文链接:\u003Ca href=\&http:\u002F\\u002F?target=https%3A\u002F\u002Fuqer.io\u002Fcommunity\u002Fshare\u002Fe5bd\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003E【sklearn机器学习】——应用机器学习的建议 \u003Ci class=\&icon-external\&\u003E\u003C\u002Fi\u003E\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Cbr\u003E本文以 Andrew Ng 的《Advice for applying Machine Learning》为基础进行拓展。\u003C\u002Fp\u003E\u003Ch2\u003E前言\u003C\u002Fh2\u003E\u003Cbr\u003E\u003Cp\u003E以Bremen大学机器学习课程的教程为基础的,总结了使用机器学习解决新问题的一些建议。包括:\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli\u003E可视化数据的方法\u003C\u002Fli\u003E\u003Cli\u003E选择一个适合当前问题的机器学习方法\u003C\u002Fli\u003E\u003Cli\u003E鉴别和解决过拟合和欠拟合问题\u003C\u002Fli\u003E\u003Cli\u003E处理大数据库问题(注意:不是非常小的)\u003C\u002Fli\u003E\u003Cli\u003E不同损失函数的利弊\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp\u003E本文以 Andrew Ng 的《Advice for applying Machine Learning》为基础。\u003Cbr\u003E这个笔记的目的是用一个互动的方法解释这些观点。有些建议是可以讨论的,仅是建议,不是严格的规则。\u003Cbr\u003E翻译参考来自\u003Ca href=\&http:\u002F\\u002F?target=http%3A\u002F\\u002F8F\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003E『应用机器学习的建议』的学习笔记\u003Ci class=\&icon-external\&\u003E\u003C\u002Fi\u003E\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Ch1\u003E\u003Cstrong\u003E数据集\u003C\u002Fstrong\u003E\u003C\u002Fh1\u003E\u003Cp\u003E使用 sklearn 的 make_classification 函数来生成一些简单的玩具数据:\u003C\u002Fp\u003E\u003Cp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\\u002Fv2-b793c4ab1a839e9a9bf615bbcc41dcd7_b.png\& data-rawwidth=\&832\& data-rawheight=\&169\& class=\&origin_image zh-lightbox-thumb\& width=\&832\& data-original=\&https:\u002F\\u002Fv2-b793c4ab1a839e9a9bf615bbcc41dcd7_r.png\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='832'%20height='169'&&\u002Fsvg&\& data-rawwidth=\&832\& data-rawheight=\&169\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&832\& data-original=\&https:\u002F\\u002Fv2-b793c4ab1a839e9a9bf615bbcc41dcd7_r.png\& data-actualsrc=\&https:\u002F\\u002Fv2-b793c4ab1a839e9a9bf615bbcc41dcd7_b.png\&\u003E\u003C\u002Ffigure\u003E注意到为二分类生成了一个数据集,这个数据集包括1000个数据点,每个特征20维。我们已经使用pandas的DataFrame类把数据和类别封装到一个共同的数据结构中。我们来看一看前5个数据点:\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\\u002Fv2-96c95b8b0c002fed5608c78bdead81a5_b.png\& data-rawwidth=\&832\& data-rawheight=\&168\& class=\&origin_image zh-lightbox-thumb\& width=\&832\& data-original=\&https:\u002F\\u002Fv2-96c95b8b0c002fed5608c78bdead81a5_r.png\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='832'%20height='168'&&\u002Fsvg&\& data-rawwidth=\&832\& data-rawheight=\&168\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&832\& data-original=\&https:\u002F\\u002Fv2-96c95b8b0c002fed5608c78bdead81a5_r.png\& data-actualsrc=\&https:\u002F\\u002Fv2-96c95b8b0c002fed5608c78bdead81a5_b.png\&\u003E\u003C\u002Ffigure\u003E通过直接查看原始特征值,我们很难获得该问题的任何线索,即使在这个低维的例子中。因此,有很多的提供数据的更容易视图的方法,其中的小部分将在接下来的部分中讨论。\u003Cbr\u003E\u003C\u002Fp\u003E\u003Ch1\u003E\u003Cstrong\u003E可视化\u003C\u002Fstrong\u003E\u003C\u002Fh1\u003E\u003Cp\u003E当你接到一个新的问题,第一步几乎都是可视化,也就是说,观察你的数据。\u003C\u002Fp\u003E\u003Cp\u003ESeaborn 是一个不错的统计数据可视化包。我们使用它的一些函数来探索数据。\u003C\u002Fp\u003E\u003Cp\u003E第一步是使用 pairplot 生成散点图和直方图。两种颜色对应了两个类别,我们使用了特征的一个子集、仅仅使用前50个数据点来简化问题。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\\u002Fv2-c88a09ded6abfe8400ae_b.png\& data-rawwidth=\&582\& data-rawheight=\&532\& class=\&origin_image zh-lightbox-thumb\& width=\&582\& data-original=\&https:\u002F\\u002Fv2-c88a09ded6abfe8400ae_r.png\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='582'%20height='532'&&\u002Fsvg&\& data-rawwidth=\&582\& data-rawheight=\&532\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&582\& data-original=\&https:\u002F\\u002Fv2-c88a09ded6abfe8400ae_r.png\& data-actualsrc=\&https:\u002F\\u002Fv2-c88a09ded6abfe8400ae_b.png\&\u003E\u003C\u002Ffigure\u003E基于该直方图,我们可以看到一些特征比其他特征对分类更有用。特别地,特征11和14看起来有丰富的信息量。这两个特征的散点图显示类别在二维空间中几乎是线性可分的。要更加注意的是,特征12和19是高度负相关的。我们可以通过使用corrplot更系统地探索相关性:\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\\u002Fv2-939f4db90d592fd947fd379_b.png\& data-rawwidth=\&635\& data-rawheight=\&550\& class=\&origin_image zh-lightbox-thumb\& width=\&635\& data-original=\&https:\u002F\\u002Fv2-939f4db90d592fd947fd379_r.png\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='635'%20height='550'&&\u002Fsvg&\& data-rawwidth=\&635\& data-rawheight=\&550\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&635\& data-original=\&https:\u002F\\u002Fv2-939f4db90d592fd947fd379_r.png\& data-actualsrc=\&https:\u002F\\u002Fv2-939f4db90d592fd947fd379_b.png\&\u003E\u003C\u002Ffigure\u003E\u003Cp\u003E我们可以发现之前的观察结果在这里得到了确认:特征11和14与类强相关(他们有丰富的信息量)。更进一步,特征12和特征19强负相关,特征19和特征14强相关。因此,有一些特征是冗余的。这对于有些分类器可能会出现问题,比如,朴素贝叶斯,它假设所有的特征都是独立的。剩下的特征大部分都是噪声,他们既不相互关联,也不和类别相关。\u003C\u002Fp\u003E\u003Cp\u003E注意到如果特征维数较大、数据点较少的时候,数据可视化会变得更有挑战性。\u003C\u002Fp\u003E\u003Ch1\u003E\u003Cstrong\u003E方法的选择\u003C\u002Fstrong\u003E\u003C\u002Fh1\u003E\u003Cp\u003E一旦我们已经使用可视化方法对数据进行了探索,我们就可以开始应用机器学习了。机器学习方法数量众多,通常很难决定先尝试哪种方法。这个简单的备忘单(归功于Andreas Müller和sklearn团队)可以帮助你为你的问题选择一个合适的机器学习方法(供选择的备忘录见\u003Ca href=\&http:\u002F\\u002F?target=http%3A\u002F\u002Fdlib.net\u002Fml_guide.svg%25EF%25BC%2589\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003Ehttp:\u002F\u002Fdlib.net\u002Fml_guide.svg)\u003Ci class=\&icon-external\&\u003E\u003C\u002Fi\u003E\u003C\u002Fa\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\\u002Fv2-b1bbbbd33ce_b.png\& data-rawwidth=\&800\& data-rawheight=\&389\& class=\&origin_image zh-lightbox-thumb\& width=\&800\& data-original=\&https:\u002F\\u002Fv2-b1bbbbd33ce_r.png\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='800'%20height='389'&&\u002Fsvg&\& data-rawwidth=\&800\& data-rawheight=\&389\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&800\& data-original=\&https:\u002F\\u002Fv2-b1bbbbd33ce_r.png\& data-actualsrc=\&https:\u002F\\u002Fv2-b1bbbbd33ce_b.png\&\u003E\u003C\u002Ffigure\u003E我们有了1000个样本,要预测一个类别,并且有了标签,那么备忘单推荐我们首先使用LinearSVC(LinearSVC代表线性核的支持向量分类,并且对于这类特殊问题使用一个有效的算法)。所有我们做了个试验。LinearSVC需要选择正则化;我们使用标准L2范数惩罚和C=10.我们分别画出训练分数和验证分数的学习曲线(这个例子中分数代表准确率):\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\\u002Fv2-ac1b8a2bd1d0e8138bb17_b.png\& data-rawwidth=\&514\& data-rawheight=\&368\& class=\&origin_image zh-lightbox-thumb\& width=\&514\& data-original=\&https:\u002F\\u002Fv2-ac1b8a2bd1d0e8138bb17_r.png\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='514'%20height='368'&&\u002Fsvg&\& data-rawwidth=\&514\& data-rawheight=\&368\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&514\& data-original=\&https:\u002F\\u002Fv2-ac1b8a2bd1d0e8138bb17_r.png\& data-actualsrc=\&https:\u002F\\u002Fv2-ac1b8a2bd1d0e8138bb17_b.png\&\u003E\u003C\u002Ffigure\u003E注意到训练数据和交叉验证数据的错误率有很大的差距。这意味什么我们可能过度拟合训练数据了!\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cbr\u003E\u003Ch1\u003E\u003Cstrong\u003E解决过拟合\u003C\u002Fstrong\u003E\u003C\u002Fh1\u003E\u003Cp\u003E有很多方法来减少过拟合:\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cul\u003E\u003Cli\u003E增加训练样本数\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cbr\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\\u002Fv2-c4dc931cbf08dd4b54a9d5_b.png\& data-rawwidth=\&514\& data-rawheight=\&368\& class=\&origin_image zh-lightbox-thumb\& width=\&514\& data-original=\&https:\u002F\\u002Fv2-c4dc931cbf08dd4b54a9d5_r.png\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='514'%20height='368'&&\u002Fsvg&\& data-rawwidth=\&514\& data-rawheight=\&368\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&514\& data-original=\&https:\u002F\\u002Fv2-c4dc931cbf08dd4b54a9d5_r.png\& data-actualsrc=\&https:\u002F\\u002Fv2-c4dc931cbf08dd4b54a9d5_b.png\&\u003E\u003C\u002Ffigure\u003E\u003Cbr\u003E\u003Cp\u003E可以看到当训练数据增加时,验证分数越来越大,差距越来越小;因此现在不再过拟合了。有很多获得更多数据的方法,比如(a)可以尽力投资收集更多数据,(b)基于现有数据创造一些人为的数据(比如图像旋转,平移,扭曲),或者(c)加入人工噪声。如果以上的这些方法都不可行,就不可能获得更多的数据,我们或者可以\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cul\u003E\u003Cli\u003E减少特征的维数 (从我们可视化中可以知道,特征11和14是信息量最大的)\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cbr\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\\u002Fv2-60eeec61cbfc_b.png\& data-rawwidth=\&514\& data-rawheight=\&368\& class=\&origin_image zh-lightbox-thumb\& width=\&514\& data-original=\&https:\u002F\\u002Fv2-60eeec61cbfc_r.png\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='514'%20height='368'&&\u002Fsvg&\& data-rawwidth=\&514\& data-rawheight=\&368\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&514\& data-original=\&https:\u002F\\u002Fv2-60eeec61cbfc_r.png\& data-actualsrc=\&https:\u002F\\u002Fv2-60eeec61cbfc_b.png\&\u003E\u003C\u002Ffigure\u003E注意到,因为是手动的挑选特征,而且在比我们给分类器更多的数据上,这有一点作弊的意味。我们可以使用自动挑选特征:\u003Cbr\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\\u002Fv2-a8a34044acdbccd72f1a3f_b.png\& data-rawwidth=\&514\& data-rawheight=\&368\& class=\&origin_image zh-lightbox-thumb\& width=\&514\& data-original=\&https:\u002F\\u002Fv2-a8a34044acdbccd72f1a3f_r.png\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='514'%20height='368'&&\u002Fsvg&\& data-rawwidth=\&514\& data-rawheight=\&368\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&514\& data-original=\&https:\u002F\\u002Fv2-a8a34044acdbccd72f1a3f_r.png\& data-actualsrc=\&https:\u002F\\u002Fv2-a8a34044acdbccd72f1a3f_b.png\&\u003E\u003C\u002Ffigure\u003E\u003Cbr\u003E\u003Cp\u003E这样做效果非常好。在这个toy数据集上,特征选择是简单的。应该注意到特征选择只是减少模型复杂度的一个特殊种类。其他的方法是:(a)减少线性回归多项式模型的次数,(b)减少人工神经网络节点的个数\u002F层数,(c)增加RBF核的带宽等等。\u003C\u002Fp\u003E\u003Cp\u003E仍然有一个问题:为什么分类器不能自动的识别有用的特征?首先让我们转向另一种选择,来减少过拟合:\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cul\u003E\u003Cli\u003E增加分类器的正则化 (减少线性SVC的C的系数)\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cbr\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\\u002Fv2-9dac83acdc5d5b595a54a7c2d2e86c14_b.png\& data-rawwidth=\&514\& data-rawheight=\&368\& class=\&origin_image zh-lightbox-thumb\& width=\&514\& data-original=\&https:\u002F\\u002Fv2-9dac83acdc5d5b595a54a7c2d2e86c14_r.png\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='514'%20height='368'&&\u002Fsvg&\& data-rawwidth=\&514\& data-rawheight=\&368\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&514\& data-original=\&https:\u002F\\u002Fv2-9dac83acdc5d5b595a54a7c2d2e86c14_r.png\& data-actualsrc=\&https:\u002F\\u002Fv2-9dac83acdc5d5b595a54a7c2d2e86c14_b.png\&\u003E\u003C\u002Ffigure\u003E这已经有一点点作用了。可以使用基于交叉验证的网格搜索自动地挑选分类器的正则化:\u003Cbr\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\\u002Fv2-d46ca781d9db_b.png\& data-rawwidth=\&514\& data-rawheight=\&368\& class=\&origin_image zh-lightbox-thumb\& width=\&514\& data-original=\&https:\u002F\\u002Fv2-d46ca781d9db_r.png\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='514'%20height='368'&&\u002Fsvg&\& data-rawwidth=\&514\& data-rawheight=\&368\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&514\& data-original=\&https:\u002F\\u002Fv2-d46ca781d9db_r.png\& data-actualsrc=\&https:\u002F\\u002Fv2-d46ca781d9db_b.png\&\u003E\u003C\u002Ffigure\u003E一般说来,特征选择似乎更好。分类器可以自动识别有用的特征吗?回想一下,LinearSVC还支持L1范数惩罚,这产生了一个稀疏的解决方案。稀疏解决方案对应一个隐式的特征选择。让我们来试试这个:\u003Cbr\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\\u002Fv2-39cb6d9f67d4e3a8fb541dd_b.png\& data-rawwidth=\&514\& data-rawheight=\&368\& class=\&origin_image zh-lightbox-thumb\& width=\&514\& data-original=\&https:\u002F\\u002Fv2-39cb6d9f67d4e3a8fb541dd_r.png\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='514'%20height='368'&&\u002Fsvg&\& data-rawwidth=\&514\& data-rawheight=\&368\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&514\& data-original=\&https:\u002F\\u002Fv2-39cb6d9f67d4e3a8fb541dd_r.png\& data-actualsrc=\&https:\u002F\\u002Fv2-39cb6d9f67d4e3a8fb541dd_b.png\&\u003E\u003C\u002Ffigure\u003E这看起来也很好。让我们来探讨学到的系数:\u003Cbr\u003ECoefficients learned: [[ 0、 0、 0、 0、 0、 0.3Cbr\u003E 0、 0、 0、 0.、 1.0524147 \u003Cbr\u003E 0.、0、0、 0、 -0.. ]]\u003Cbr\u003E\nNon-zero coefficients: [ 5
9 11 12 17 18]\u003Cbr\u003E大部分系数是0(对应的特征被忽略),并且目前最大的权重在特征11上。\u003Cbr\u003E\u003Ch1\u003E\u003Cstrong\u003E不同的数据集\u003C\u002Fstrong\u003E\u003C\u002Fh1\u003E\u003Cp\u003E我们生成另外一个二分类的数据集,并且再次应用LinearSVC。\u003C\u002Fp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\\u002Fv2-cf37df611556fec58d74b_b.png\& data-rawwidth=\&508\& data-rawheight=\&368\& class=\&origin_image zh-lightbox-thumb\& width=\&508\& data-original=\&https:\u002F\\u002Fv2-cf37df611556fec58d74b_r.png\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='508'%20height='368'&&\u002Fsvg&\& data-rawwidth=\&508\& data-rawheight=\&368\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&508\& data-original=\&https:\u002F\\u002Fv2-cf37df611556fec58d74b_r.png\& data-actualsrc=\&https:\u002F\\u002Fv2-cf37df611556fec58d74b_b.png\&\u003E\u003C\u002Ffigure\u003E\u003Cp\u003E结果很不好,甚至训练误差都不如随机误差。这个可能的原因是什么?难道上面的所有方法(更多数据,特征选择,增加正则化)都不奏效了吗?\u003C\u002Fp\u003E\u003Cp\u003E结果是:No。我们处在一个完全不同的情况:以前,训练分数一直接近完美,我们不得不解决过拟合。这次,训练误差也非常低。是欠拟合。让我们来看一看数据:\u003C\u002Fp\u003E\u003Cp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\\u002Fv2-74c94a92f576c6c9c0481_b.png\& data-rawwidth=\&556\& data-rawheight=\&496\& class=\&origin_image zh-lightbox-thumb\& width=\&556\& data-original=\&https:\u002F\\u002Fv2-74c94a92f576c6c9c0481_r.png\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='556'%20height='496'&&\u002Fsvg&\& data-rawwidth=\&556\& data-rawheight=\&496\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&556\& data-original=\&https:\u002F\\u002Fv2-74c94a92f576c6c9c0481_r.png\& data-actualsrc=\&https:\u002F\\u002Fv2-74c94a92f576c6c9c0481_b.png\&\u003E\u003C\u002Ffigure\u003E这些数据显然不是线性可分的;更多的数据或者更少的特征没有用了。我们的模型错了;因此欠拟合。\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cbr\u003E\u003Ch1\u003E\u003Cstrong\u003E解决欠拟合\u003C\u002Fstrong\u003E\u003C\u002Fh1\u003E\u003Cp\u003E减少欠拟合的方法:\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cul\u003E\u003Cli\u003E使用更多或更好的特征(到原点的距离应该有用!)\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cbr\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\\u002Fv2-ee100238ddba_b.png\& data-rawwidth=\&508\& data-rawheight=\&368\& class=\&origin_image zh-lightbox-thumb\& width=\&508\& data-original=\&https:\u002F\\u002Fv2-ee100238ddba_r.png\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='508'%20height='368'&&\u002Fsvg&\& data-rawwidth=\&508\& data-rawheight=\&368\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&508\& data-original=\&https:\u002F\\u002Fv2-ee100238ddba_r.png\& data-actualsrc=\&https:\u002F\\u002Fv2-ee100238ddba_b.png\&\u003E\u003C\u002Ffigure\u003E\u003Cbr\u003E\u003Cp\u003E非常好!但是我们必须要花一些心思来想出这些特征。或许分类器可以自动的做到这些?\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cul\u003E\u003Cli\u003E使用更复杂的模型(减少正则化或非线性核)\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cbr\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\\u002Fv2-13d7a932b7d3dc3c8383fc_b.png\& data-rawwidth=\&508\& data-rawheight=\&368\& class=\&origin_image zh-lightbox-thumb\& width=\&508\& data-original=\&https:\u002F\\u002Fv2-13d7a932b7d3dc3c8383fc_r.png\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='508'%20height='368'&&\u002Fsvg&\& data-rawwidth=\&508\& data-rawheight=\&368\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&508\& data-original=\&https:\u002F\\u002Fv2-13d7a932b7d3dc3c8383fc_r.png\& data-actualsrc=\&https:\u002F\\u002Fv2-13d7a932b7d3dc3c8383fc_b.png\&\u003E\u003C\u002Ffigure\u003E\u003Cbr\u003E\u003Cp\u003E是的,这也可以达到满意的效果!\u003C\u002Fp\u003E\u003Cbr\u003E\u003Ch1\u003E\u003Cstrong\u003E更大的数据集和更高维的特征空间\u003C\u002Fstrong\u003E\u003C\u002Fh1\u003E\u003Cp\u003E回到原始的数据集上,但是这次有更多的特征和样本,并且有5类。LinearSVC在这样大小的数据集上会有一点慢;备忘单上建议使用SGDClassifier。这个分类器学习到一个线性模型(就像LinearSVC或logistic回归),但是它在训练中使用随机梯度下降(就像反向传播的人工神经网络一样)。\u003C\u002Fp\u003E\u003Cp\u003ESGDClassifier允许小批量扫描数据,这对于数据量太大不能放到内存中时有帮助。交叉验证和这项技术不兼容;使用逐步验证代替:这里,估计器总是在训练数据集的下一块上进行测试(在用它进行训练之前)。训练之后,会再次进行测试来检查它适应数据的能力。\u003C\u002Fp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\\u002Fv2-3de63cc9fb3a15b3e8fdecc5b86e8733_b.png\& data-rawwidth=\&514\& data-rawheight=\&358\& class=\&origin_image zh-lightbox-thumb\& width=\&514\& data-original=\&https:\u002F\\u002Fv2-3de63cc9fb3a15b3e8fdecc5b86e8733_r.png\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='514'%20height='358'&&\u002Fsvg&\& data-rawwidth=\&514\& data-rawheight=\&358\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&514\& data-original=\&https:\u002F\\u002Fv2-3de63cc9fb3a15b3e8fdecc5b86e8733_r.png\& data-actualsrc=\&https:\u002F\\u002Fv2-3de63cc9fb3a15b3e8fdecc5b86e8733_b.png\&\u003E\u003C\u002Ffigure\u003E\u003Cp\u003E这个图告诉我们,在50个mini-batches的数据之后,我们已经不能再提高验证数据了,因此可以停止训练了。由于训练分数不是很高,我们可能是欠拟合而不是过拟合。要是使用rbf核测试一下就更好了,但是SGDClassifier很不幸的不兼容核技巧。替代方法是可以使用一个多层的感知机,它也可以使用随机梯度下降进行训练,但是一个非线性模型,或者像备忘单建议的,使用核近似法。\u003C\u002Fp\u003E\u003Cp\u003E现在在一个机器学习中使用的经典的解决光学字符识别的数据集上:\u003C\u002Fp\u003E\u003Cp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\\u002Fv2-50ded33af5efb595e983f0f849ea2ef2_b.png\& data-rawwidth=\&350\& data-rawheight=\&336\& class=\&content_image\& width=\&350\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='350'%20height='336'&&\u002Fsvg&\& data-rawwidth=\&350\& data-rawheight=\&336\& class=\&content_image lazy\& width=\&350\& data-actualsrc=\&https:\u002F\\u002Fv2-50ded33af5efb595e983f0f849ea2ef2_b.png\&\u003E\u003C\u002Ffigure\u003E由1083个样本组成的数据集,每个样本由64个特征组成\u003Cbr\u003E因此我们有1083个手写数字(0,1,2,3,4,5)样本,每一个样本由8*8的4bit像素(0,16)灰度图片组成。因此特征的维数适中(64);但是,这64维空间的可视化是非常重要的。我们来说明不同的减少维数(至二维)方法,基于\u003Ca href=\&http:\u002F\\u002F?target=http%3A\u002F\u002Fscikit-learn.org\u002Fstable\u002Fauto_examples\u002Fmanifold\u002Fplot_lle_digits.html%23example-manifold-plot-lle-digits-py\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003EManifold learning on handwritten digits: Locally Linear Embedding, Isomap...\u003Ci class=\&icon-external\&\u003E\u003C\u002Fi\u003E\u003C\u002Fa\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E已经随机投影的二维数据的结果不是太差:\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\\u002Fv2-5ad5dbf78c3d5cf80461_b.png\& data-rawwidth=\&580\& data-rawheight=\&590\& class=\&origin_image zh-lightbox-thumb\& width=\&580\& data-original=\&https:\u002F\\u002Fv2-5ad5dbf78c3d5cf80461_r.png\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='580'%20height='590'&&\u002Fsvg&\& data-rawwidth=\&580\& data-rawheight=\&590\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&580\& data-original=\&https:\u002F\\u002Fv2-5ad5dbf78c3d5cf80461_r.png\& data-actualsrc=\&https:\u002F\\u002Fv2-5ad5dbf78c3d5cf80461_b.png\&\u003E\u003C\u002Ffigure\u003E然而,有一个很著名的方法一般来说应该适合,也就是PCA(使用TruncatedSVD来实现,不需要构建协方差矩阵):\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\\u002Fv2-3d6ffba31_b.png\& data-rawwidth=\&580\& data-rawheight=\&590\& class=\&origin_image zh-lightbox-thumb\& width=\&580\& data-original=\&https:\u002F\\u002Fv2-3d6ffba31_r.png\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='580'%20height='590'&&\u002Fsvg&\& data-rawwidth=\&580\& data-rawheight=\&590\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&580\& data-original=\&https:\u002F\\u002Fv2-3d6ffba31_r.png\& data-actualsrc=\&https:\u002F\\u002Fv2-3d6ffba31_b.png\&\u003E\u003C\u002Ffigure\u003EPCA给出一个更好的结果,而且在这个数据集上甚至更快。通过允许64维输入空间到二维目标空间的非线性变换,我们可以得到更好的结果。这有很多种方法;我们这里只介绍一种方法:t-SNE。\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\\u002Fv2-debf4bc9baaf5e5fe1baed9_b.png\& data-rawwidth=\&580\& data-rawheight=\&590\& class=\&origin_image zh-lightbox-thumb\& width=\&580\& data-original=\&https:\u002F\\u002Fv2-debf4bc9baaf5e5fe1baed9_r.png\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='580'%20height='590'&&\u002Fsvg&\& data-rawwidth=\&580\& data-rawheight=\&590\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&580\& data-original=\&https:\u002F\\u002Fv2-debf4bc9baaf5e5fe1baed9_r.png\& data-actualsrc=\&https:\u002F\\u002Fv2-debf4bc9baaf5e5fe1baed9_b.png\&\u003E\u003C\u002Ffigure\u003Et-SNE唯一的不足是它需要更多的时间来计算,因此不适用于大数据集(在目前的条件下)\u003Cbr\u003E\u003C\u002Fp\u003E\u003Ch1\u003E\u003Cstrong\u003E损失函数的选择\u003C\u002Fstrong\u003E\u003C\u002Fh1\u003E\u003Cp\u003E损失函数的选择也非常重要。下面是不同损失函数的说明:\u003C\u002Fp\u003E\u003Cfigure\u003E\u003Cnoscript\u003E\u003Cimg src=\&https:\u002F\\u002Fv2-f8e5a088ebfbf41e9840366_b.png\& data-rawwidth=\&498\& data-rawheight=\&364\& class=\&origin_image zh-lightbox-thumb\& width=\&498\& data-original=\&https:\u002F\\u002Fv2-f8e5a088ebfbf41e9840366_r.png\&\u003E\u003C\u002Fnoscript\u003E\u003Cimg src=\&data:image\u002Fsvg+utf8,&svg%20xmlns='http:\u002F\u002Fwww.w3.org\u002FFsvg'%20width='498'%20height='364'&&\u002Fsvg&\& data-rawwidth=\&498\& data-rawheight=\&364\& class=\&origin_image zh-lightbox-thumb lazy\& width=\&498\& data-original=\&https:\u002F\\u002Fv2-f8e5a088ebfbf41e9840366_r.png\& data-actualsrc=\&https:\u002F\\u002Fv2-f8e5a088ebfbf41e9840366_b.png\&\u003E\u003C\u002Ffigure\u003E\u003Cp\u003E不同的损失函数有不同的优势:\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli\u003E0-1损失是在分类问题中你实际上需要的。不幸地是,这是非凸优化问题,由于最优化问题会变得或多或少的不好解决,因此并不实用。\u003C\u002Fli\u003E\u003Cli\u003E合页损失(使用支持向量分类)导出一个在数据中稀疏的解(由于f(x)&1,它变为0),而且对离群点比较稳健(由于f(x)to-infty,它仅仅成线性增长)。它不提供充分的校准的概率。\u003C\u002Fli\u003E\u003Cli\u003E对数损失函数(比如,在逻辑回归中使用)导出很好的概率校准。因此,如果你不仅得到二值预测,还可以得出结果的概率,这个损失函数是一个很好的选择。缺点是,它的解在数据空间中是不稀疏的,它比合页损失函数更容易受到离群点的影响。\u003C\u002Fli\u003E\u003Cli\u003E指数损失函数(在Adaboost中使用)非常容易受离群点的影响(由于当f(x)to-infty时它快速增加)。它主要适用于Adaboost中,因为它在一个简单有效的boosting算法中有效果。\u003C\u002Fli\u003E\u003Cli\u003E感知器损失函数基本上是合页损失函数的移动版本。合页损失函数也惩罚非常接近边界但是在正确一边的点(间隔最大化准则)。另一方面,感知器损失函数只要数据点在边界正确的一边就可以,如果数据是线性可分就使得边界待定,导致比间隔最大化更差的泛化性。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cbr\u003E\u003Ch1\u003E\u003Cstrong\u003E总结\u003C\u002Fstrong\u003E\u003C\u002Fh1\u003E\u003Cp\u003E以上我们讨论了一些怎么让机器学习在一个新的问题上工作起来的建议。我们考虑了分类问题,回归和聚类问题也与之类似。然而,专注于人工数据集(为了便于理解)还有点过于简单化。在很多实际问题中,数据的收集、组织、预处理是极重要的。\u003C\u002Fp\u003E\u003Cp\u003E欢迎关注\u003Cb\u003E量化投资与机器学习公众号\u003C\u002Fb\u003E和\u003Ca href=\&http:\u002F\\u002F?target=https%3A\u002F\u002Fuqer.io\u002Fcommunity\u002Fuser\u002F55cdc91fc18c67f\u002Fshares\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003E 量化投资与机器学习研究部\u003Ci class=\&icon-external\&\u003E\u003C\u002Fi\u003E\u003C\u002Fa\u003E探讨机器学习相关知识。\u003C\u002Fp\u003E\u003Cp\u003E其他相关文章推荐:\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&http:\u002F\\u002F?target=https%3A\u002F\u002Fuqer.io\u002Fcommunity\u002Fshare\u002F57b81dba975a23f\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003E【动态时间规整算法】之股指期货交易策略(一) \u003Ci class=\&icon-external\&\u003E\u003C\u002Fi\u003E\u003C\u002Fa\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&http:\u002F\\u002F?target=https%3A\u002F\u002Fuqer.io\u002Fcommunity\u002Fshare\u002F57bec81c228e5b79a675acf3\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003E基于凯利公式的 21点 仓位管理玩法 \u003Ci class=\&icon-external\&\u003E\u003C\u002Fi\u003E\u003C\u002Fa\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&http:\u002F\\u002F?target=https%3A\u002F\u002Fuqer.io\u002Fcommunity\u002Fshare\u002F56fdebf881a8eb0\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003EMachineLearning-Lib 机器学习库 \u003Ci class=\&icon-external\&\u003E\u003C\u002Fi\u003E\u003C\u002Fa\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&http:\u002F\\u002F?target=https%3A\u002F\u002Fuqer.io\u002Fcommunity\u002Fshare\u002F577c4dfc931da0\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003E python机器学习算法速查 \u003Ci class=\&icon-external\&\u003E\u003C\u002Fi\u003E\u003C\u002Fa\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&http:\u002F\\u002F?target=https%3A\u002F\u002Fuqer.io\u002Fcommunity\u002Fshare\u002F5e5b\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003E机器学习法选股\u003Ci class=\&icon-external\&\u003E\u003C\u002Fi\u003E\u003C\u002Fa\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&http:\u002F\\u002F?target=https%3A\u002F\u002Fuqer.io\u002Fcommunity\u002Fshare\u002Fe5b\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003E自学成才第八步——机器学习策略-adaboost——Jason的学习笔记\u003Ci class=\&icon-external\&\u003E\u003C\u002Fi\u003E\u003C\u002Fa\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&http:\u002F\\u002F?target=https%3A\u002F\u002Fuqer.io\u002Fcommunity\u002Fshare\u002Fe5b8a03932cc5\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003E机器学习&量化投资-从入门到放弃全套笔记-LogisticRegression \u003Ci class=\&icon-external\&\u003E\u003C\u002Fi\u003E\u003C\u002Fa\u003E\u003C\u002Fp\u003E&,&updated&:new Date(&T02:40:52.000Z&),&canComment&:false,&commentPermission&:&anyone&,&commentCount&:8,&collapsedCount&:0,&likeCount&:130,&state&:&published&,&isLiked&:false,&slug&:&&,&isTitleImageFullScreen&:false,&rating&:&none&,&titleImage&:&https:\u002F\\u002Fv2-0fd273c18ff2bddfaa9a967_r.jpg&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&reviewers&:[],&topics&:[{&url&:&https:\u002F\\u002Ftopic\u002F&,&id&:&&,&name&:&机器学习&},{&url&:&https:\u002F\\u002Ftopic\u002F&,&id&:&&,&name&:&量化&},{&url&:&https:\u002F\\u002Ftopic\u002F&,&id&:&&,&name&:&sklearn&}],&adminClosedComment&:false,&titleImageSize&:{&width&:510,&height&:268},&href&:&\u002Fapi\u002Fposts\u002F&,&excerptTitle&:&&,&column&:{&slug&:&uqer2015&,&name&:&量化哥&},&tipjarState&:&inactivated&,&annotationAction&:[],&sourceUrl&:&&,&pageCommentsCount&:8,&hasPublishingDraft&:false,&snapshotUrl&:&&,&publishedTime&:&T10:40:52+08:00&,&url&:&\u002Fp\u002F&,&lastestLikers&:[{&bio&:&hello world&,&isFollowing&:false,&hash&:&ebc63af975d53b0efdc6ea4a57284f4e&,&uid&:32,&isOrg&:false,&slug&:&sudalv0313&,&isFollowed&:false,&description&:&programmer,soccer&,&name&:&夏炎&,&profileUrl&:&https:\u002F\\u002Fpeople\u002Fsudalv0313&,&avatar&:{&id&:&44fd08d80&,&template&:&https:\u002F\\u002F50\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false},{&bio&:&研发工程师&,&isFollowing&:false,&hash&:&fcba0d532b009dade0b20&,&uid&:52,&isOrg&:false,&slug&:&long-gang-62-42&,&isFollowed&:false,&description&:&&,&name&:&隆刚&,&profileUrl&:&https:\u002F\\u002Fpeople\u002Flong-gang-62-42&,&avatar&:{&id&:&335f661c417aa87311ccf&,&template&:&https:\u002F\\u002F50\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false},{&bio&:&Walk you through the dark&,&isFollowing&:false,&hash&:&e5d623bb3c85af55cc8d9db&,&uid&:008400,&isOrg&:false,&slug&:&howinloo&,&isFollowed&:false,&description&:&&,&name&:&Howin&,&profileUrl&:&https:\u002F\\u002Fpeople\u002Fhowinloo&,&avatar&:{&id&:&v2-52db7c9e9e2a997c728b53cc5244120e&,&template&:&https:\u002F\\u002F50\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false},{&bio&:&尽人事,听天命。&,&isFollowing&:false,&hash&:&13f6057b28bfc12c1f1c&,&uid&:80,&isOrg&:false,&slug&:&ling-yi-li&,&isFollowed&:false,&description&:&&,&name&:&凌漪栎&,&profileUrl&:&https:\u002F\\u002Fpeople\u002Fling-yi-li&,&avatar&:{&id&:&&,&template&:&https:\u002F\\u002F50\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false},{&bio&:&现代马列主义程序员,民歌女神红色Diva爱好者&,&isFollowing&:false,&hash&:&2a007e86bbc3cfc0eaaf996&,&uid&:04,&isOrg&:false,&slug&:&zhiyue-fu-37&,&isFollowed&:false,&description&:&&,&name&:&Zhiyue Fu&,&profileUrl&:&https:\u002F\\u002Fpeople\u002Fzhiyue-fu-37&,&avatar&:{&id&:&fa0b4d037d9d5fbace27d71&,&template&:&https:\u002F\\u002F50\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false}],&summary&:&\u003Cimg src=\&http:\u002F\\u002Fv2-939f4db90d592fd947fd379_200x112.png\& data-rawwidth=\&635\& data-rawheight=\&550\& class=\&origin_image inline-img zh-lightbox-thumb\& data-original=\&http:\u002F\\u002Fv2-939f4db90d592fd947fd379_r.png\&\u003E作者:量化投资与机器学习优矿研究部 原文链接:\u003Ca href=\&https:\u002F\u002Fuqer.io\u002Fcommunity\u002Fshare\u002Fe5bd\& data-title=\&【sklearn机器学习】——应用机器学习的建议 \& class=\&\&\u003E【sklearn机器学习】——应用机器学习的建议 \u003C\u002Fa\u003E 本文以 Andrew Ng 的《Advice for applying Machine Learning》为基础进行拓展。前言 以Bremen大学机器学习课程的教程为基础的,总结了使用机器学习解决新问题的…&,&reviewingCommentsCount&:0,&meta&:{&previous&:{&isTitleImageFullScreen&:false,&rating&:&none&,&titleImage&:&https:\u002F\\u002F50\u002Fv2-bf906be01de_xl.jpg&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&topics&:[{&url&:&https:\u002F\\u002Ftopic\u002F&,&id&:&&,&name&:&量化&},{&url&:&https:\u002F\\u002Ftopic\u002F&,&id&:&&,&name&:&金融&},{&url&:&https:\u002F\\u002Ftopic\u002F&,&id&:&&,&name&:&证券&}],&adminClosedComment&:false,&href&:&\u002Fapi\u002Fposts\u002F&,&excerptTitle&:&&,&author&:{&bio&:&心系二级的一级狗&,&isFollowing&:false,&hash&:&de78f6ab276ea&,&uid&:44,&isOrg&:false,&slug&:&hunterchen029&,&isFollowed&:false,&description&:&凡事都要讲道理&,&name&:&陈颖&,&profileUrl&:&https:\u002F\\u002Fpeople\u002Fhunterchen029&,&avatar&:{&id&:&v2-0391362dfaeff707ca54c19e046187fd&,&template&:&https:\u002F\\u002F50\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false},&column&:{&slug&:&uqer2015&,&name&:&量化哥&},&content&:&\u003Cp\u003E作者:孙新华(知乎传送门\u003Ca href=\&http:\u002F\\u002Fpeople\u002Fdb9ca43dbbc5c50ebb96961\& data-hash=\&db9ca43dbbc5c50ebb96961\& class=\&member_mention\& data-title=\&@Garden\& data-hovercard=\&p$b$db9ca43dbbc5c50ebb96961\&\u003E@Garden\u003C\u002Fa\u003E )
原文链接:\u003Ca href=\&http:\u002F\\u002F?target=https%3A\u002F\u002Fuqer.io\u002Fcommunity\u002Fshare\u002Fe5b43f45c2104\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003E高频因子初探-集合竞价成交占比因子\u003Ci class=\&icon-external\&\u003E\u003C\u002Fi\u003E\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cp\u003E\u003Cb\u003E基于集合竞价成交占比因子构建的组合2010年后回测结果为alpha为21%以上,IR为2.15以上,组合日度胜率57%以上,有较为稳定的盈利能力\u003C\u002Fb\u003E\u003C\u002Fp\u003E\u003Ch2\u003E\u003Cb\u003E前言\u003C\u002Fb\u003E\u003C\u002Fh2\u003E\u003Cbr\u003E\u003Cp\u003E近半年来,通过高频数据的累计效应为低频选股提供额外信息这种思路受到各大研究团队的青睐,优矿社区上也有一些基于高频数据因子的分析测试,比如call大神的聪明钱因子等等。\u003C\u002Fp\u003E\u003Cp\u003E在A股这个远非有效但竞争激烈的投资环境,开辟一片少有人研究过的乐土确实有很大的吸引力,本文也希望在这一方面做一点尝试,欢迎讨论。\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cp\u003E一般认为股价的表现情况和股票受关注程度有一定的关系,而受关注的股票,往往在集合竞价期间多空博弈就比较激烈,而且在集合竞价期间,由于大盘整体施加在个股上的压力较少。那么基于这种单独由个股特性而带来的,强烈的多空博弈是否对个股未来的收益有影响?\u003C\u002Fp\u003E\u003Cp\u003E我们今天介绍的\u003Cstrong\u003E\u003Cem\u003E集合竞价成交占比因子\u003C\u002Fem\u003E\u003C\u002Fstrong\u003E就是在这方面的一个尝试,即我们认为集合竞价成交比例较多的股票会有超额收益,具体公式如下:\u003C\u002Fp\u003E\u003Cbr\u003E\u003Cp\u003E\u003Cfigure\u003E\u003Cimg src=\&https:\u002F\\u002Fv2-ab58d7b4958_b.png\& data-rawwidth=\&194\& data-rawheight=\&49\& class=\&content_image\& width=\&194\&\u003E\u003C\u002Ffigure\u003E其中CVOL表示每一日的集合竞价成交量,VOL表示每一日的股票总成交量,n为对集合竞价成交量占比去移动平均的天数。\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Cb\u003E\u003Ca href=\&http:\u002F\\u002F?target=https%3A\u002F\u002Fuqer.io\u002Fcommunity\u002Fshare\u002Fe5b43f45c2104\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003E因子计算及数据准备参见原文\u003Ci class=\&icon-external\&\u003E\u003C\u002Fi\u003E\u003C\u002Fa\u003E\u003C\u002Fb\u003E\u003C\u002Fp\u003E\u003Ch2\u003E\u003Cstrong\u003E合成因子截面特征\u003C\u002Fstrong\u003E\u003C\u002Fh2\u003E\u003Cfigure\u003E\u003Cimg src=\&https:\u002F\\u002Fv2-e55aac44f11_b.png\& data-rawwidth=\&727\& data-rawheight=\&404\& class=\&origin_image zh-lightbox-thumb\& width=\&727\& data-original=\&https:\u002F\\u002Fv2-e55aac44f11_r.png\&\u003E\u003C\u002Ffigure\u003E\u003Cp\u003E由上图可以看到,集合竞价占比因子的值分布并不稳定,在股灾期间(2015.6 & 2015.8 & 2016.1)呈现出强烈地上升趋势,并且分位差距变小。\u003C\u002Fp\u003E\u003Cp\u003E这与我们对于该因子的直观理解是相符的,股灾期间有大量股票被钉在跌停上,绝大部分成交都来自于集合竞价;同时恐慌情绪严重,选择在集合竞价期间成交的投资者增加。\u003C\u002Fp\u003E\u003Ch2\u003E\u003Cstrong\u003E市值分布\u003C\u002Fstrong\u003E\u003C\u002Fh2\u003E\u003Cp\u003E\u003Cfigure\u003E\u003Cimg src=\&https:\u002F\\u002Fv2-7efa9d0c98bf6a95bac88e_b.png\& data-rawwidth=\&758\& data-rawheight=\&409\& class=\&origin_image zh-lightbox-thumb\& width=\&758\& data-original=\&https:\u002F\\u002Fv2-7efa9d0c98bf6a95bac88e_r.png\&\u003E\u003C\u002Ffigure\u003E由上图可见,集合竞价成交占比因子显示出了较为明显的小市值偏向\u003Cbr\u003E\u003C\u002Fp\u003E\u003Ch2\u003E\u003Cstrong\u003E因子历史回测净值表现\u003C\u002Fstrong\u003E\u003C\u002Fh2\u003E\u003Cp\u003E我们在全A股上回测从2010年年初至2016年6月底该因子的表现情况,这里我们采用的组合构建方式为选取前十分位等权构建,每日调仓,回测结果和日度胜率分析如下:\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Cfigure\u003E\u003Cimg src=\&https:\u002F\\u002Fv2-6ed17d8abc4b_b.png\& data-rawwidth=\&779\& data-rawheight=\&434\& class=\&origin_image zh-lightbox-thumb\& width=\&779\& data-original=\&https:\u002F\\u002Fv2-6ed17d8abc4b_r.png\&\u003E\u003C\u002Ffigure\u003E\u003Cfigure\u003E\u003Cimg src=\&https:\u002F\\u002Fv2-8c85b9e608ce6a3afc59_b.png\& data-rawwidth=\&856\& data-rawheight=\&352\& class=\&origin_image zh-lightbox-thumb\& width=\&856\& data-original=\&https:\u002F\\u002Fv2-8c85b9e608ce6a3afc59_r.png\&\u003E\u003C\u002Ffigure\u003E\u003Cfigure\u003E\u003Cimg src=\&https:\u002F\\u002Fv2-d4c27bc7a4e30b8b9bdef_b.png\& data-rawwidth=\&498\& data-rawheight=\&335\& class=\&origin_image zh-lightbox-thumb\& width=\&498\& data-original=\&https:\u002F\\u002Fv2-d4c27bc7a4e30b8b9bdef_r.png\&\u003E\u003C\u002Ffigure\u003E回测周期和组合构建方式不变,调仓频率改成每月第一个交易日调仓,其回测结果和日度胜率表现如下:\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cfigure\u003E\u003Cimg src=\&https:\u002F\\u002Fv2-46c4ffde18aa0a0ed18f22fd0e24d584_b.png\& data-rawwidth=\&778\& data-rawheight=\&434\& class=\&origin_image zh-lightbox-thumb\& width=\&778\& data-original=\&https:\u002F\\u002Fv2-46c4ffde18aa0a0ed18f22fd0e24d584_r.png\&\u003E\u003C\u002Ffigure\u003E\u003Cfigure\u003E\u003Cimg src=\&https:\u002F\\u002Fv2-05a4879e6def_b.png\& data-rawwidth=\&498\& data-rawheight=\&335\& class=\&origin_image zh-lightbox-thumb\& width=\&498\& data-original=\&https:\u002F\\u002Fv2-05a4879e6def_r.png\&\u003E\u003C\u002Ffigure\u003E\u003Ch2\u003E\u003Cb\u003E小结\u003C\u002Fb\u003E\u003C\u002Fh2\u003E\u003Cp\u003E综合来看,基于\u003Cstrong\u003E\u003Cem\u003E集合竞价成交量占比\u003C\u002Fem\u003E\u003C\u002Fstrong\u003E构建的因子有较强的选股能力,前十分位分组构建的组合alpha为21%以上,IR为2.15以上,组合日度胜率57%以上,有较为稳定的盈利能力。\u003C\u002Fp\u003E\u003Cp\u003E当然,在这里我们没有对其进行中性化处理,集合竞价成交量占比因子与风险因子的相关性、中性化之后是否还有预测能力,欢迎感兴趣的读者进行进一步的探索。\u003C\u002Fp\u003E\u003Ch2\u003E\u003Cstrong\u003E参考文档\u003C\u002Fstrong\u003E\u003C\u002Fh2\u003E\u003Cul\u003E\u003Cli\u003E爱建证券-《高频选股因子梳理与新因子探索》\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cbr\u003E\u003Cp\u003E其他文章推荐:\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&http:\u002F\\u002F?target=https%3A\u002F\u002Fuqer.io\u002Fcommunity\u002Fshare\u002F578f04eb9b5f1ab7\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003E 追踪聪明钱 - A股市场交易的微观结构初探\u003Ci class=\&icon-external\&\u003E\u003C\u002Fi\u003E\u003C\u002Fa\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&http:\u002F\\u002F?target=https%3A\u002F\u002Fuqer.io\u002Fcommunity\u002Fshare\u002F57db049afb87a0\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003E Low Beta, High Alpha?\u003Ci class=\&icon-external\&\u003E\u003C\u002Fi\u003E\u003C\u002Fa\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&http:\u002F\\u002F?target=https%3A\u002F\u002Fuqer.io\u002Fcommunity\u002Fshare\u002Fe5ba\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003E股票异动事件\u003Ci class=\&icon-external\&\u003E\u003C\u002Fi\u003E\u003C\u002Fa\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&http:\u002F\\u002F?target=https%3A\u002F\u002Fuqer.io\u002Fcommunity\u002Fshare\u002Ff06c8f3390457b\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003E互联网+量化投资 大数据指数手把手\u003Ci class=\&icon-external\&\u003E\u003C\u002Fi\u003E\u003C\u002Fa\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Ca href=\&http:\u002F\\u002F?target=https%3A\u002F\u002Fuqer.io\u002Fcommunity\u002Fshare\u002F56e7db887de50afe\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003E 如何用Quartz Signal快速实现Worldquant 101 Alpha \u003Ci class=\&icon-external\&\u003E\u003C\u002Fi\u003E\u003C\u002Fa\u003E\u003C\u002Fp\u003E&,&state&:&published&,&sourceUrl&:&&,&pageCommentsCount&:0,&canComment&:false,&snapshotUrl&:&&,&slug&:,&publishedTime&:&T11:22:14+08:00&,&url&:&\u002Fp\u002F&,&title&:&『多因子』高频因子初探-集合竞价成交占比因子&,&summary&:&作者:孙新华(知乎传送门\u003Ca href=\&http:\u002F\\u002Fpeople\u002Fdb9ca43dbbc5c50ebb96961\& data-hash=\&db9ca43dbbc5c50ebb96961\& class=\&member_mention\& data-title=\&@Garden\& data-hovercard=\&p$b$db9ca43dbbc5c50ebb96961\&\u003E@Garden\u003C\u002Fa\u003E ) 原文链接:\u003Ca href=\&http:\u002F\\u002F?target=https%3A\u002F\u002Fuqer.io\u002Fcommunity\u002Fshare\u002Fe5b43f45c2104\& class=\& wrap external\& target=\&_blank\& rel=\&nofollow noreferrer\&\u003E高频因子初探-集合竞价成交占比因子\u003Ci class=\&icon-external\&\u003E\u003C\u002Fi\u003E\u003C\u002Fa\u003E \u003Cb\u003E基于集合竞价成交占比因子构建的组合2010年后回测结果为alpha为21%以上,IR为2.15以上,组合日度胜率57%以上,有较为稳定的盈利能力\u003C\u002Fb\u003E\u003Cb\u003E前言\u003C\u002Fb\u003E 近半年来,通过高频数据的累计效…&,&reviewingCommentsCount&:0,&meta&:{&previous&:null,&next&:null},&commentPermission&:&anyone&,&commentsCount&:0,&likesCount&:22},&next&:{&isTitleImageFullScreen&:false,&rating&:&none&,&titleImage&:&https:\u002F\\u002F50\u002Fv2-a95fbcc15e1d0fbebeb3f3b_xl.jpg&,&links&:{&comments&:&\u002Fapi\u002Fposts\u002F2Fcomments&},&topics&:[{&url&:&https:\u002F\\u002Ftopic\u002F&,&id&:&&,&name&:&多因子模型&},{&url&:&https:\u002F\\u002Ftopic\u002F&,&id&:&&,&name&:&量化&},{&url&:&https:\u002F\\u002Ftopic\u002F&,&id&:&&,&name&:&证券&}],&adminClosedComment&:false,&href&:&\u002Fapi\u002Fposts\u002F&,&excerptTitle&:&&,&author&:{&bio&:&心系二级的一级狗&,&isFollowing&:false,&hash&:&de78f6ab276ea&,&uid&:44,&isOrg&:false,&slug&:&hunterchen029&,&isFollowed&:false,&description&:&凡事都要讲道理&,&name&:&陈颖&,&profileUrl&:&https:\u002F\\u002Fpeople\u002Fhunterchen029&,&avatar&:{&id&:&v2-0391362dfaeff707ca54c19e046187fd&,&template&:&https:\u002F\\u002F50\u002F{id}_{size}.jpg&},&isOrgWhiteList&:false,&isBanned&:false},&column&:{&slug&:&uqer2015&,&name&:&量化哥&},&content&:&李腾 、陈烨、邓岳三位老师在知乎上发布了一份
多因子模型水平测试题,我们金工也来试答一下,跟大家共同探讨学习。\u003Cp\u003E试题地址:\u003Ca href=\&https:\u002F\\u002Fp\u002F\& class=\&internal\&\u003E多因子模型水平测试题\u003C\u002Fa\u003E\u003C\u002Fp\u003E\u003Ch2\u003E\u003Cb\u003E因子\u003C\u002Fb\u003E\u003C\u002Fh2\u003E\u003Cp\u003E\u003Cu\u003E1.\nA\u003C\u002Fu\u003E\u003Cu\u003E股市场驱动因子能分为哪几大类\u003C\u002Fu\u003E\u003Cu\u003E?\u003C\u002Fu\u003E\u003C\u002Fp\u003E\u003Cp\u003E从大的角度讲,可以说\u003Cb\u003E风格因子\u003C\u002Fb\u003E和\u003Cb\u003E行业因子\u003C\u002Fb\u003E,详细参见下一题。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cu\u003E2.\n\u003C\u002Fu\u003E\u003Cu\u003E常见的因子类别?\u003C\u002Fu\u003E\u003C\u002Fp\u003E\u003Cp\u003E风格因子又可以分为\u003Cb\u003E基本面因子\u003C\u002Fb\u003E和\u003Cb\u003E技术类因子\u003C\u002Fb\u003E,诸如估值、质量等属于基本面因子,这些因子的计算原料均取自财务报表,而技术因子则一般仅用价格和成交量这两个基础数据来计算。当然还有一些其他用的比较多的因子,比如\u003Cb\u003E分析师预期、大数据以及高频因子\u003C\u002Fb\u003E等。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cu\u003E3.\n\u003C\u002Fu\u003E\u003Cu\u003E除了最常用的回归法,还有没有其他方法可以进行单因子测试?各自优劣是什么?注:下面问题均针对回归法。\u003C\u002Fu\u003E\u003C\u002Fp\u003E\u003Cp\u003E其他常用的方法比如有直接计算因子rankIC,通过IC来检验因子的预测效果和对股票的区分度;另外还有用分组法来测试因子效果,选取不同分位因子构建投资组合,然后对比各分组收益表现。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cu\u003E4.\n\u003C\u002Fu\u003E\u003Cu\u003E单因子测试是否需要纠正版块、市值偏离等问题?如何纠正?\u003C\u002Fu\u003E\u003C\u002Fp\u003E\u003Cp\u003E是否行业中性和市值中性取决于个人,行业中性和市值中性可以帮我们\u003Cb\u003E更好地理解收益的来源\u003C\u002Fb\u003E,也许某个财务因子表现好,但很可能是其与市值因子相关性极高。行业的纠正可以使组合中各行业的占比和基准保持一致,市值的纠正可以在优化限制条件中加入市值暴露为零的限制条件,或者简单的按市值加权构建组合。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cu\u003E5.\n\u003C\u002Fu\u003E\u003Cu\u003E行业归属因子是否应选择动态变化的数据?\u003C\u002Fu\u003E\u003C\u002Fp\u003E\u003Cp\u003E是,因为同一家公司在\u003Cb\u003E不同时期可能主营业务发生变化\u003C\u002Fb\u003E,导致的行业分类会发生变化,若用静态的数据一方面不合理,另一方面是隐含的用到了未来数据。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cu\u003E6.\n\u003C\u002Fu\u003E\u003Cu\u003E混业经营的上市公司,其行业因子有哪些处理方式?利弊?\u003C\u002Fu\u003E\u003C\u002Fp\u003E\u003Cp\u003E一个常见的处理方法是继续用虚拟变量来代表行业因子,只是对于混业经营的公司而言不是简单地0和1,而是根据某个财务指标(比如营业收入占比)来决定各行业的分配比例。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cu\u003E7.\n\u003C\u002Fu\u003E\u003Cu\u003E行业因子采用GICS、证监会、申万、中信等第三方数据更好?还是利用相关性、聚类分析等算法来动态确定更好?各自利弊?\u003C\u002Fu\u003E\u003C\u002Fp\u003E\u003Cp\u003E个人建议用市场通用的第三方数据更好,比如申万;相关性和聚类分析等算法有可能存在伪回归的风险,缺乏踏实可靠财务经营逻辑,而且第三方数据都会根据公司的经营状况进行动态更新,在市场上也会形成一致预期。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cu\u003E8.\n\u003C\u002Fu\u003E\u003Cu\u003E规模因子(Size,也叫市值因子)为什么在中国具有如此重大的影响?选择长期暴露小盘股有哪些利弊?\u003C\u002Fu\u003E\u003C\u002Fp\u003E\u003Cp\u003E一是小盘股的\u003Cb\u003E壳资源效应\u003C\u002Fb\u003E;二是小盘股可操作性强,在A股市场散户居多而且内幕交易盛行;三是小盘股成长性更高,如三因子中提到,长期来看,小盘股确实较大盘股有超额收益。\u003C\u002Fp\u003E\u003Cp\u003E流动性危机比如14年12月份,而且注册制实施后,Size因子肯定不会一直表现这么抢眼。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cu\u003E9.\n\u003C\u002Fu\u003E\u003Cu\u003E市值因子应该怎么取?取市值本身、市值对数、市值平方根有什么区别,哪种更好?你认为流通市值和市值哪个信号更强?\u003C\u002Fu\u003E\u003C\u002Fp\u003E\u003Cp\u003E市值取对数会拉近个股间的差距,很多股票就近乎与等权重;至于哪一个好,得看实际的回测效果,从个人经验和直觉来看\u003Cb\u003E流通市值的代表性更强\u003C\u002Fb\u003E。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cu\u003E10.\u003C\u002Fu\u003E\u003Cu\u003E换手率应该怎么计算?如遇长时间停牌,如何处理?\u003C\u002Fu\u003E\u003C\u002Fp\u003E\u003Cp\u003E对于个股一般用\u003Cb\u003E成交量\u002F总流通股本\u003C\u002Fb\u003E来计算换手率,对于一个策略而言换手率一般是来衡量手续费的高低,常用每天\u003Cb\u003E双边交易总额\u002F前一天收盘总资产\u003C\u002Fb\u003E来计算。停牌没有交易,可以简单置零处理。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cu\u003E11.\u003C\u002Fu\u003E\u003Cu\u003E若某一因子包含长期平均数据(比如5年平均净利润),而中间有数据缺失的片段(比如最近5年中有2年的年报缺失),应该如何处理?现有两种参考方法:设为空值,或取现有数据的平均值充作长期均值。哪种更好?还是无所谓?\u003C\u002Fu\u003E\u003C\u002Fp\u003E\u003Cp\u003E对于缺失值的处理没有完美的方法,不同的情况应不同分析;以文中例子来说,要计算5年平均的净利润,若企业的利润是线性增加的,那么取现有数据则会高估平均利润,同样若企业利润时线性减少的,那么取现有数据则会低估平均利润,具体情况要具体分析。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cu\u003E12.\u003C\u002Fu\u003E\u003Cu\u003E财务数据应该在哪个时点进行更新?比如月频的多因子模型,年报公布时间可能为3月或4月,是在3月底的时候即时更新那些已出的数据,还是在4月底统一更新使用?\u003C\u002Fu\u003E\u003C\u002Fp\u003E\u003Cp\u003E为了更好获得信息的时效性,通常的做法是随时公布随时更新。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cu\u003E13.\u003C\u002Fu\u003E\u003Cu\u003E有哪些指标可以用来衡量单因子测试的结果?\u003C\u002Fu\u003E\u003C\u002Fp\u003E\u003Cp\u003E回归法中,用t绝对值均值,|t|&2占比,t序列方差,beta均值,beta方差等\u003C\u002Fp\u003E\u003Cp\u003E构建组合法中,用信息比IR、夏普值、最大回撤、换手率等通用指标。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cu\u003E14.\u003C\u002Fu\u003E\u003Cu\u003E依据单因子测试结果,如何对因子的有效程度进行排序?或者说,如何用单一指标衡量因子有效性?\u003C\u002Fu\u003E\u003C\u002Fp\u003E\u003Cp\u003E若评估风险因子,则用abs(mean(t))\u002Fstd(t)\u003C\u002Fp\u003E\u003Cp\u003E若评估alpha因子,则用information ratio\u003C\u002Fp\u003E\u003Cp\u003E\u003Cu\u003E15.\u003C\u002Fu\u003E\u003Cu\u003E所谓的“alpha因子”和“风险因子”,应该怎么进行区分?\u003C\u002Fu\u003E\u003C\u002Fp\u003E\u003Cp\u003E风险因子更在乎于对股票收益来源的解释,从经济金融角度讲也是合乎投资逻辑,从统计角度讲,如上一题列示,abs(mean(t))\u002Fstd(t)是显著的,比如大于2的比例非常高;而alpha因子的要求更高,统计上可以表示为mean(t)\u002Fstd(t)是显著的,直观上讲是说,风险因子对方向没有要求,只要求因子值对股票的解释性、区分度,而alpha因子则要求因子方向保持稳定且要显著,这样才能获取稳定的超额收益。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cu\u003E16.\u003C\u002Fu\u003E\u003Cu\u003E你理解中有效且有逻辑的因子应该包括哪些?有逻辑但效果较差的因子应该包括哪些?如果采用某种方法组合出一个古怪的因子解释力很强,但是看不出因子的经济意义,你该怎么办?\u003C\u002Fu\u003E\u003C\u002Fp\u003E\u003Cp\u003E有效且有逻辑的因子比如有估值、市值;有逻辑效果差可能是因子已经反映在价格里面,也有可能是市场并不是那么有效(尤其A股);对于复杂因子,可以通过归因分析来细看因子的风格偏向。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cu\u003E17.\u003C\u002Fu\u003E\u003Cu\u003E如何打磨旧的因子,提高其有效性?\u003C\u002Fu\u003E\u003C\u002Fp\u003E\u003Cp\u003E一个简单的想法是多测试旧因子的不同使用场景,比如估值因子在不同行业间的表现差异;又或者构建动态情景模型(dynamic contextual alpha model),在不同情境下看旧因子的表现;当然最直接的是进行旧因子的择时。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cu\u003E18.\u003C\u002Fu\u003E\u003Cu\u003E构建因子的新信息源如何寻找?有哪些思路?\u003C\u002Fu\u003E\u003C\u002Fp\u003E\u003Cp\u003E比如现在市场上很火的高频转低频因子;又或者一些还没有被其他投资者利用到的数据(非结构化,需要很轻的技术把这些数据变为结构化的因子形态),比如\u003Cb\u003E热度数据、情感数据、支付数据\u003C\u002Fb\u003E等大数据领域。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cu\u003E19.\u003C\u002Fu\u003E\u003Cu\u003E现在常用的因子都是易于量化的因子,对于基本面因子、事件驱动因子、市场情绪因子等不易量化的因子,有无合适的处理方法?\u003C\u002Fu\u003E\u003C\u002Fp\u003E\u003Cp\u003E具体问题具体分析,不好量化的因子可以根据经验直接分层打分来处理。\u003C\u002Fp\u003E\u003Ch2\u003E\u003Cb\u003E模型拟合\u003C\u002Fb\u003E\u003C\u002Fh2\u003E\u003Cp\u003E\u003Cu\u003E1.\u003C\u002Fu\u003E\u003Cu\u003E拟合多因子模型的综合目标是什么?\u003C\u002Fu\u003E\u003C\u002Fp\u003E\u003Cp\u003E增强模型的解释能力,提高模型对风险的预测。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cu\u003E2.\u003C\u002Fu\u003E\u003Cu\u003E如何选择样本空间?例如对初上市股票、ST股票、指数成分股变动、停牌股票等异常情况的处理方法。\u003C\u002Fu\u003E\u003C\u002Fp\u003E\u003Cp\u003E每一期进行回归时的样本空间都需要动态处理,对于明显不合理且没有代表性的股票可以直接剔除,比如初上市的股票,ST股票、停牌股票等,保证最终所选出来的股票是最具有代表性的。同时需要注意,剔除时需要考

我要回帖

更多关于 keras 自定义损失函数 的文章

 

随机推荐