每个证券公司都有一个分析师团队,不定期发布投资研究报告。分析师的研报准吗?分析师的“言值”究竟有多高?
“信谁”的大数据科学团队对这个问题也很好奇。究竟准不准,我们信数据不信故事。
技术男的方法非常简单暴力:
- 把分析师发布的研报预测与相关股票最后涨跌的结果作对比,判断该研报预测的准确性
- 把分析师发布的所有研报汇总起来,就得到分析预测的正确率,即“言值”,“言值”可以是从0-100分。
- 汇总所有分析师的数据,就可以得到全部分析师的“言值”分布。
每个证券公司都有一个分析师团队,不定期发布投资研究报告。分析师的研报准吗?分析师的“言值”究竟有多高?
“信谁”的大数据科学团队对这个问题也很好奇。究竟准不准,我们信数据不信故事。
技术男的方法非常简单暴力:
在文本处理中,比如商品评论挖掘,有时需要了解每个评论分别和商品的描述之间的相似度,以此衡量评论的客观性。
文本相似度计算的需求始于搜索引擎,搜索引擎需要计算“用户查询”和爬下来的众多“网页”之间的相似度,从而把最相似的排在最前,返回给用户。
$$ 词频(TF) = 某个词在文章中的出现次数 $$
我们将一个用户和其他所有用户进行对比,找到相似的人。这种算法有两个弊端:
扩展性 随着用户数量的增加,其计算量也会增加。这种算法在只有几千个用户的情况下能够工作得很好,但达到一百万个用户时就会出现瓶颈。
稀疏性 大多数推荐系统中,物品的数量要远大于用户的数量,因此用户仅仅对一小部分物品进行了评价,这就造成了数据的稀疏性。比如亚马逊有上百万本书,但用户只评论了很少一部分,于是就很难找到两个相似的用户了。
鉴于以上两个局限性,我们不妨考察一下基于物品的协同过滤算法。
协同型过滤 ( Collaborative filtering)
一个协作型过滤算法通常的做法是对一大群人进行搜索,并从中找出与我们品味相近的一小群人。算法会对这些人所偏爱的其他内容进行考查,并将它们组合起来构造出一个经过排名的推荐列表。
本文中的数据集都是以嵌套字典的形式出现,如下:
字典的key为用户名,value为对各个物品的评价分数。
scrapy爬虫框架在业内大大有名,自己写过静态网页和动态网页的爬虫,一直没拿scrapy来写,近来看了scrapy的官方文档,了解了大致的流程,故拿来练手实践了一个项目。
本文主要抓取股吧的文章,内容包括:
使用pandas,首先导入包:
1 | from pandas import Series, DataFrame |
1 | obj = Series([4, 7, -5, 3]) |