如何撬动机器学习的冰山一角?

640?wx_fmt=gif


目前,人工智能的应用日渐广泛。


而作为人工智能核心的机器学习,是一门多领域的交叉学科,专门研究计算机模拟或实现人类学习行为的方法,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。


简单来说,机器学习就是优化数学方程式的过程。但在实际生活中,机器学习已经在金融、科研等领域蓬勃发展。

640?wx_fmt=png举个例子,运用爬虫技术来获取东方财富网的股票信息


首先,明确需要获取的信息:

总市值、净资产、净利润、市盈率、市净率、毛利率、净利率 ROE


根据目标,准备以下材料:

东方财富网址:http://quote.eastmoney.com/stocklist.html

环境:python2.7/python3.6

需要安装:BeautifulSoup包、requests包、lxml包


进入我们事先准备的东方财富网站,先爬取股票汇总页面,如下图所示:

640?wx_fmt=png

(直看得眼花缭乱)


接着进入每只股票的详情页,爬取每只股票的具体信息,以下图两家为例:


640?wx_fmt=png


那我们是如何获取到想要的数据的呢?


来瞧瞧撬动这个冰山一角的代码:

#coding=utf-8

import requests,re,json,time,os

import heapq

 

from bs4 import BeautifulSoup

 

class GPINFO(object):

    """docstring for GPINFO"""

    def __init__(self):

        self.Url = 'http://quote.eastmoney.com/stocklist.html'

        self.BaseData = []

        self.Date = time.strftime('%Y%m%d')

        self.Record = 'basedata'+self.Date

        if os.path.exists(self.Record):

            print ('record exist...')

            self.BaseData = self.get_base_data_from_record()

        else:

            print ('fuck-get data again...')

            self.get_data()

 

    #将数据写入到记录文件

    def write_record(self,text):

        with open(self.Record,'ab') as f:

            f.write((text+'\n').encode('utf-8'))

 

    #从记录文件从读取数据

    def get_base_data_from_record(self):

        ll = []

        with open(self.Record,'rb') as f:

            json_l = f.readlines()

            for j in json_l:

                ll.append(json.loads(j.decode('utf-8')))

        return ll

 

    #爬虫获取数据

    def get_data(self):

        #请求数据

        orihtml = requests.get(self.Url).content

        #创建 beautifulsoup 对象

        soup = BeautifulSoup(orihtml,'lxml')

        #采集每一个股票的信息

        count = 0

        for a in soup.find('div',class_='quotebody').find_all('a',{'target':'_blank'}):

            record_d = {}

            #代号

            num = a.get_text().split('(')[1].strip(')'#获取股票代号

            if not (num.startswith('00') or num.startswith('60')):continue #只需要6*/0*    只要以00或60开头的股票代号

            record_d['num']=num

            #名称

            name = a.get_text().split('(')[0#获取股票名称

            record_d['name']=name

            #详情页

            detail_url = a['href']

            record_d['detail_url']=detail_url

 

            cwzburl = detail_url

            #发送请求

            try:

                cwzbhtml = requests.get(cwzburl,timeout=30).content  #爬取股票详情页

            except Exception as e:

                print ('perhaps timeout:',e)

                continue

            #创建soup对象

            cwzbsoup = BeautifulSoup(cwzbhtml,'lxml')

 

            #财务指标列表 [浦发银行,总市值    净资产    净利润    市盈率    市净率    毛利率    净利率    ROE] roe:净资产收益率

            try:

                cwzb_list = cwzbsoup.find('div',class_='cwzb').tbody.tr.get_text().split()  #获取class为cwzb的div下第一个tbody下第一个tr获取内部文本,并使用空格分割

            except Exception as e:

                print ('error:',e)

                continue

            #去除退市股票

            if '-' not in cwzb_list:

                record_d['data']=cwzb_list   #将数据加入到字典中

                self.BaseData.append(record_d)  #将字典加入到总数据总

                self.write_record(json.dumps(record_d))  #将字典类型转化为字符串,写入文本

                count=count+1

                print (len(self.BaseData))

 

def main():

    test = GPINFO()

    result = test.BaseData

    #[浦发银行,总市值    净资产    净利润    市盈率    市净率    毛利率    净利率    ROE] roe:净资产收益率]

    top_10 = heapq.nlargest(10,result,key=lambda r:float(r['data'][7].strip('%')))   #获取前10名利率最高者的数据

    for item in top_10:

        for key in item['data']:

            print(key),

        print('\n')

#打印字符串时,使用print str.encode('utf8');

#打印中文列表时,使用循环 for key in list:print key

 

#打印中文字典时,可以使用循环,也可以使用json:

#  import json

# print json.dumps(dict, encoding='UTF-8', ensure_ascii=False)

 

if __name__ == '__main__':

    main()


除此之外,机器学习还可以

通过文字信息进行文本分析;

搭建回测系统;

开发交易平台等等。


既然机器学习如此牛逼,那如何追赶这股技术潮流呢?


现超级数学建模携手唐老师以Python为基础,为大家精心准备《Python机器学习》系列课程。


唐老师将系统讲解Python的基础知识常用的工具包和算法以及四个主流的Python库,并借助真实案例带领大家进行项目实战,全程还会附送完整的代码进行课程教学与实战演练。


相信,每天都能感受到能力的提升!


《Python机器学习》系列课程介绍


基础篇(共131学时)

(课程大纲)

《Python机器学习实战课程》(¥398)

第一章 AI时代人工智能入学指南(免费试学)

第二章 Python快速入门(免费试学)

第三章 Python工具:科学计算库Numpy

第四章 Python工具:数据分析处理库Pandas

第五章 Python工具:可视化库Matplotlib

第六章 算法:线性回归算法

第七章 算法:梯度下降原理

第八章 算法:逻辑回归算法

第九章 案例:Python实现逻辑回归与梯度下降

第十章 案例:使用Python分析科比生涯数据

第十一章 案例:信用卡欺诈检测

第十二章 算法:决策树

第十三章 决策树Sklearn实例

第十四章 算法:随机森林与集成算法

第十五章 案例:Kaggle竞赛案例:泰坦尼克获救预测

第十六章 算法:线性支持向量机

第十七章 非线性支持向量机

第十八章 支持向量调参实战

第十九章 计算机视觉挑战

第二十章 神经网络必备基础知识点

第二十一章 最优化与反向传播

第二十二章 神经网络整体架构    

第二十三章 案例实战CIFAR图像分类任务 

第二十四章 Tensorflow框架    

第二十五章 Mnist手写字体识别    

第二十六章 PCA降维操作与SVD矩阵分解    

第二十七章 聚类与集成算法  

第二十八章 机器学习业务流程   

长按识别二维码

即可报名学习

640?wx_fmt=png


进阶篇(共113学时)

(课程大纲)


《Python机器学习实战——进阶课程》(¥398)

第一章:Seaborn可视化库(免费试学)

第二章:降维算法-线性判别分析

第三章:Python实现线性判别分析

第四章:PCA主成分分析

第五章:Python实现PCA主成分分析

第六章:EM算法

第七章:GMM聚类实践

第八章:Xboost算法

第九章:推荐系统

第十章:推荐系统实践

第十一章:贝叶斯算法

第十二章:Python文本数据分析

第十三章:KMEANS聚类

第十四章:DBSCAN聚类

第十五章:聚类实践

第十六章:时间序列ARIMA模型

第十七章: 时间序列预测任务

第十八章:语言模型

第十九章:自然语言处理word2vec

第二十章:使用word2vec进行分类任务

第二十一章:Gensim中文词向量建模

第二十二章:自然语言处理-递归神经网络

第二十三章:递归神经网络实战-情感分析

第二十四章:探索性数据分析-赛事数据集分析

第二十五章:探索性数据分析-农粮数据分析

长按识别二维码

即可报名学习

640?wx_fmt=png


拓展篇(共88学时)

(课程大纲)


《Python数据科学必备四大主流库》(¥198)

第一章:Python基础(免费试学)

第二章:科学计算库Numpy

第三章:数据分析处理库Pandas

第四章:可视化库Matplotlib

第五章:Seaborn可视化库


长按识别二维码

即可报名学习

640?wx_fmt=png

课程特色

  • 学习平台——腾讯课堂

  • 上课形式——录播(可反复观看)

  • 学习周期——两个月(学习建议:2小时/周)

  • 答疑方式——课程配有专属学习群,老师随时解答

  • 课程资料——配有专属课件代码与实战案例

  • 课程收益——快速掌握机器学习的基础知识;掌握机器学习的四大主流库;独立完成项目实战

适用群体

  • 零基础使用者

  • 机器学习、深度学习爱好者

  • 科研工作者,特别是打算迈入人工智能领域的工作者

授课老师

作为主讲人,唐老师将把多年的机器学习经验和Python使用技巧分享给大家。因此课程传授的不仅是知识,还有思维和方法


640?wx_fmt=png


特别提醒

基础篇

  • 课程价格——¥398

  • 课程优惠

新学员

限量发放50元优惠券,公众号后台对话框回复机器学习领取

老学员(报名过我们任一付费课程的学员)

评价已报名的课程,并截图发给助教,即可领取55元优惠券


进阶篇

  • 课程价格——¥398

  • 课程优惠

新学员

限量发放50元优惠券,公众号后台对话框回复实战进阶领取

老学员(报名过我们任一付费课程的学员)

评价已报名的课程,并截图发给助教,即可领取55元优惠券


拓展篇

  • 课程价格——¥198

  • 课程优惠

本课程暂无优惠


注意事项

Python交流群:114109947

课程有疑问成功报名均请联系助教

640?wx_fmt=jpeg

小七微信:zwjlee001

大鱼QQ:210187565

案例来源:

https://blog.csdn.net/luanpeng825485697/article/details/78425612

作者:栾鹏

本文由数据与算法之美整理

案例版权归原作者所有,如有侵权请留言联系删除,感谢合作。

640?来吧,点击下方“阅读原文”,跟随着老师的脚步,提升自我!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/303220.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 下运行libnids,libnids出错

2017/03/28因为246上一般用的东西都比较多了,就直接使用了这部分。但当初编译的时候也不是我弄得。今天想试一下libnids的编程。编译错误在网上查了下,说是版本不够的原因,那我也不能重新编译了,毕竟还有别人说不定用的好好的。gc…

服务治理治什么,10张图告诉你答案

凌晨四点被公司的监控告警叫醒了,告警的原因是生产环境跑批任务发生故障。即刻起床处理故障,但还是花了不少时间才解决。这次故障是一次数据校验的跑批任务,校验前面跑批任务的数据是否正确。幸运的是,之前的核心任务已经完成&…

Mapgis6.7 林相图自动注记 .

林业行业制作林相图是一件比较复杂的事。Mapgis注释和子图分别对应arcmap中的标注和符号,区文件填充颜色对应arcmap中的渲染。由于mapgis中上注释文本和子图号都只能手工一个个去上。如果能结合arcmap出图的强大功能,由arcmap负责制图,mapgis…

在linux文件共享接口,入坑Linux-day13(使用vsftpd服务传输文件、使用Samba或NFS实现文件共享)...

一、文件传输协议#ftp是一种在互联网中进行的文件传输协议,基于客户端/服务器模式,默认使用20、21号端口,其中端口20(数据端口)用于进行数据传输,端口21(命令端口)用于接收客户端发出的相关FTP命令与参数。#FTP工作的两种模式主动…

大数据分析了50万条拼多多商品数据, 得出了这样的结论

一、缘起我在杭州有位朋友,提到有家做社交的电商很火,叫拼多多,我没有在意,直到有一天,我居然在电视上看到了它的广告,广告画面活蹦乱跳,余音绕梁,我惊呆了,想知道这是何…

CentOS 7 安装 Greenplum6 (附 dotNET Core 示例)

Mysql 在面对大数据量的时候,还是表现有些吃力,所以产品中需要扩展能支持海量数据的数据库,这里选择的数据库为 Greenplum6 ,Greenplum 底层使用的是开源数据库 PostgreSQL 。本文会介绍怎样在 CentOS 7 中安装 Greenplum6&#x…

linux系统故障实验,Linux常见系统故障排除

导读: 前言 运维人员经常会遇到各式各样的系统故障,如何根据故障特征锁定问题根源,需要的不仅仅是技巧,还有遇到故障时的思路,和对系统内部的理解,本文列出了一些常见的系统故障和处理方法,在那…

MIT正式发布编程语言Julia 1.0:Python、R、C++三合一

MIT 开发的 Julia 语言是全球热度上升最快的编程语言之一,下载量超过 200 万次,下载者包括谷歌、Facebook、FAA 和美国能源部等各个部门的开发者。近日,MIT CSAIL 实验室正式发布了 Julia 1.0,该语言期望结合 C 的速度、Matlab 的…

EFCore3.1+编写自定义的EF.Functions扩展方法

前言本文主要是讲解EF Core3.0 如何实现自定义的数据库扩展函数,虽然EF.Functions 提供了很多数据库函数,但是并不全面.比如加密解密..。这样的话 我们就需要自己扩展这些数据库函数 从而达到调用的目的.本文以达梦数据库为例(其他数据库都一样)..上篇文章推荐: EF …

WSUS2.0数据导入、导出(备份、还原)

以前我们做的WSUS实验都是让WSUS服务器通过互联网连接到微软网站去下 载更新补丁,但是现实的生活中有些网络是与互联网隔绝的,这种情况下可以采用导入导出WSUS数据的方法来解决WSUS的更新问题。先在一台能联网的 WSUS服务器上下载所需更新,然…

linux perl模块检测,Linux有问必答:如何用Perl检测Linux的发行版本

提问:我需要写一个Perl程序,它会包含Linux发行版相关的代码。为此,Perl程序需要能够自动检测运行中的Linux的发行版(如Ubuntu、CentOS、Debian、Fedora等等),以及它是什么版本号。如何用Perl检测Linux的发行版本?如果要用Perl脚本…

借助TensorFlow框架,到底能做什么?

谷歌在七月份正式推出了深度学习框架TensorFlow 1.9 版本,那么TensorFlow框架到底是什么?TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。最初由Google大脑小组的研究员和工程师们开发…

在c语言中如何屏蔽一段程序,如何在用C语言关闭TCP程序中的Nagle算法

TCP为了防止在网络中过多的小分组会导致阻塞,因此提供了Nagle算法:要求一个TCP连接上最多只能有一个未被确认的未完成的小分组,在该分组的确认到达之前不能发送其他的小分组。相反,TCP收集这些少量的分组,并在确认到来…

CCNP课堂练习四:frame-relay traffic-shaping(帧中继流量×××)

帧中继(Frame Relay)是一种网络与数据终端设备(DTE)接口标准。它可以减少结点的处理时间,提高网络的吞吐量。帧中继提供的是数据链路层和物理层的协议规范,任何高层协议都独立于帧中继协议,因此,大大地简化了帧中继的实现。目前帧中继的主要应用之一是局域网互联,特别是在局域网…

百度内部培训PPT流出:数据分析的道与术

这是一份来自百度内部的数据分析学习PPT,非常经典的入门教材。主要内容1、什么是数据分析(道)1.1 数据分析是什么?1.2 什么是做好数据分析的关键?1.3 分析要思考业务,尤其是接地气1.4 分析要言之有物&#…

VS2010 C++下编译调试MongoDB“.NET研究”源码

考虑到mongodb使用了boost库源码,参考mongodb官方文档后,下载编译boost版本是1.42(时间为2010-2-2)或更新版本:boost版本1.42:http://sourceforge.net/projects/boost/files/boost/1.42.0/boost_1_42_0.zip/download 下载boost源码之后…

有了这15款编程游戏,谁都可以学编程!

1、Coding Games一边玩游戏,一边挑战编程难题。Coding games支持包括PHP、C、JavaScript在内的20多种编程语言。用户界面功能强大,可以定制。例如,你可以选择你的代码编辑器的风格: Emacs、Vim、Classic。如果你想提升编程技能&am…

毕业的那天,程序员师兄竟然让我去做这一行

给大家看一份最新的数据:(薪资表)2018年最新数据:python、大数据、人工智能从业者工资为什么人工智能行业的工资那么高?无论是科研院所,商业巨头还是初创企业,各行各业都在大力开发或者引进人工…

Python 分析《爱情公寓》电影,让我十年情怀一瞬间都喂了狗

深陷抄袭之名、诉讼纠纷的《爱情公寓》终于上映了。情怀粉们的力量不容小觑,截止到8月12,《爱情公寓》票房已经突破3.72亿大关,稳坐票房冠军的宝座,院线排片占比高达40.0%。和超高票房背道而驰的,是各大社交平台上一边…

银行背景下分库分表技术选型

业务持续增长带来的单表数据量过大,必然影响到数据库的读写性能,那到底要不要分库分表呢?阿里巴巴P3C规范给出一个推荐:【推荐】单表行数超过500万行或者单表容量超过2GB,才推荐进行分库分表。说明:如果预计…