人工智能路上,怎么能少了它!
目前,人工智能的應(yīng)用日漸廣泛。
而作為人工智能核心的機(jī)器學(xué)習(xí),是一門多領(lǐng)域的交叉學(xué)科,專門研究計(jì)算機(jī)模擬或?qū)崿F(xiàn)人類學(xué)習(xí)行為的方法,以獲取新的知識或技能,重新組織已有的知識結(jié)構(gòu)使之不斷改善自身的性能。
簡單來說,機(jī)器學(xué)習(xí)就是優(yōu)化數(shù)學(xué)方程式的過程。但在實(shí)際生活中,機(jī)器學(xué)習(xí)已經(jīng)在金融、科研等領(lǐng)域蓬勃發(fā)展。
舉個例子,運(yùn)用爬蟲技術(shù)來獲取東方財(cái)富網(wǎng)的股票信息。
首先,明確需要獲取的信息:
總市值、凈資產(chǎn)、凈利潤、市盈率、市凈率、毛利率、凈利率 ROE
根據(jù)目標(biāo),準(zhǔn)備以下材料:
東方財(cái)富網(wǎng)址:http://quote.eastmoney.com/stocklist.html
環(huán)境:python2.7/python3.6
需要安裝:BeautifulSoup包、requests包、lxml包
進(jìn)入我們事先準(zhǔn)備的東方財(cái)富網(wǎng)站,先爬取股票匯總頁面,如下圖所示:
(直看得眼花繚亂)
接著進(jìn)入每只股票的詳情頁,爬取每只股票的具體信息,以下圖兩家為例:
那我們是如何獲取到想要的數(shù)據(jù)的呢?
來瞧瞧撬動這個冰山一角的代碼:
#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()
?
??? #將數(shù)據(jù)寫入到記錄文件
??? def write_record(self,text):
??????? with open(self.Record,'ab') as f:
??????????? f.write((text+'\n').encode('utf-8'))
?
??? #從記錄文件從讀取數(shù)據(jù)
??? 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
?
??? #爬蟲獲取數(shù)據(jù)
??? def get_data(self):
??????? #請求數(shù)據(jù)
??????? orihtml = requests.get(self.Url).content
??????? #創(chuàng)建 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
??????????? #發(fā)送請求
??????????? try:
??????????????? cwzbhtml = requests.get(cwzburl,timeout=30).content? #爬取股票詳情頁
??????????? except Exception as e:
??????????????? print ('perhaps timeout:',e)
??????????????? continue
??????????? #創(chuàng)建soup對象
??????????? cwzbsoup = BeautifulSoup(cwzbhtml,'lxml')
?
??????????? #財(cái)務(wù)指標(biāo)列表 [浦發(fā)銀行,總市值??? 凈資產(chǎn)??? 凈利潤??? 市盈率??? 市凈率??? 毛利率??? 凈利率??? ROE] roe:凈資產(chǎn)收益率
??????????? try:
??????????????? cwzb_list = cwzbsoup.find('div',class_='cwzb').tbody.tr.get_text().split()? #獲取class為cwzb的div下第一個tbody下第一個tr獲取內(nèi)部文本,并使用空格分割
??????????? except Exception as e:
??????????????? print ('error:',e)
??????????????? continue
??????????? #去除退市股票
??????????? if '-' not in cwzb_list:
??????????????? record_d['data']=cwzb_list?? #將數(shù)據(jù)加入到字典中
??????????????? self.BaseData.append(record_d)? #將字典加入到總數(shù)據(jù)總
??????????????? self.write_record(json.dumps(record_d))? #將字典類型轉(zhuǎn)化為字符串,寫入文本
??????????????? count=count+1
??????????????? print (len(self.BaseData))
?
def main():
??? test = GPINFO()
??? result = test.BaseData
??? #[浦發(fā)銀行,總市值??? 凈資產(chǎn)??? 凈利潤??? 市盈率??? 市凈率??? 毛利率??? 凈利率??? ROE] roe:凈資產(chǎn)收益率]
??? top_10 = heapq.nlargest(10,result,key=lambda r:float(r['data'][7].strip('%')))?? #獲取前10名利率最高者的數(shù)據(jù)
??? for item in top_10:
??????? for key in item['data']:
??????????? print(key),
??????? print('\n')
#打印字符串時,使用print str.encode('utf8');
#打印中文列表時,使用循環(huán) for key in list:print key
?
#打印中文字典時,可以使用循環(huán),也可以使用json:
#? import json
# print json.dumps(dict, encoding='UTF-8', ensure_ascii=False)
?
if __name__ == '__main__':
??? main()
除此之外,機(jī)器學(xué)習(xí)還可以
通過文字信息進(jìn)行文本分析;
搭建回測系統(tǒng);
開發(fā)交易平臺等等。
既然機(jī)器學(xué)習(xí)如此牛逼,那如何追趕這股技術(shù)潮流呢?
現(xiàn)超級數(shù)學(xué)建模攜手唐老師以Python為基礎(chǔ),為大家精心準(zhǔn)備《Python機(jī)器學(xué)習(xí)》系列課程。
唐老師將系統(tǒng)講解Python的基礎(chǔ)知識、常用的工具包和算法以及四個主流的Python庫,并借助真實(shí)案例帶領(lǐng)大家進(jìn)行項(xiàng)目實(shí)戰(zhàn),全程還會附送完整的代碼進(jìn)行課程教學(xué)與實(shí)戰(zhàn)演練。
相信,每天都能感受到能力的提升!
《Python機(jī)器學(xué)習(xí)》系列課程介紹
基礎(chǔ)篇(共131學(xué)時)
(課程大綱)
《Python機(jī)器學(xué)習(xí)實(shí)戰(zhàn)課程》(¥398)
第一章 AI時代人工智能入學(xué)指南(免費(fèi)試學(xué))
第二章?Python快速入門(免費(fèi)試學(xué))
第三章 Python工具:科學(xué)計(jì)算庫Numpy
第四章 Python工具:數(shù)據(jù)分析處理庫Pandas
第五章 Python工具:可視化庫Matplotlib
第六章 算法:線性回歸算法
第七章 算法:梯度下降原理
第八章 算法:邏輯回歸算法
第九章 案例:Python實(shí)現(xiàn)邏輯回歸與梯度下降
第十章 案例:使用Python分析科比生涯數(shù)據(jù)
第十一章 案例:信用卡欺詐檢測
第十二章 算法:決策樹
第十三章 決策樹Sklearn實(shí)例
第十四章 算法:隨機(jī)森林與集成算法
第十五章 案例:Kaggle競賽案例:泰坦尼克獲救預(yù)測
第十六章 算法:線性支持向量機(jī)
第十七章 非線性支持向量機(jī)
第十八章 支持向量調(diào)參實(shí)戰(zhàn)
第十九章 計(jì)算機(jī)視覺挑戰(zhàn)
第二十章 神經(jīng)網(wǎng)絡(luò)必備基礎(chǔ)知識點(diǎn)
第二十一章 最優(yōu)化與反向傳播
第二十二章 神經(jīng)網(wǎng)絡(luò)整體架構(gòu)? ??
第二十三章?案例實(shí)戰(zhàn)CIFAR圖像分類任務(wù)?
第二十四章 Tensorflow框架? ??
第二十五章 Mnist手寫字體識別 ???
第二十六章 PCA降維操作與SVD矩陣分解?? ?
第二十七章 聚類與集成算法??
第二十八章 機(jī)器學(xué)習(xí)業(yè)務(wù)流程???
長按識別二維碼
即可報(bào)名學(xué)習(xí)
進(jìn)階篇(共113學(xué)時)
(課程大綱)
《Python機(jī)器學(xué)習(xí)實(shí)戰(zhàn)——進(jìn)階課程》(¥398)
第一章:Seaborn可視化庫(免費(fèi)試學(xué))
第二章:降維算法-線性判別分析
第三章:Python實(shí)現(xiàn)線性判別分析
第四章:PCA主成分分析
第五章:Python實(shí)現(xiàn)PCA主成分分析
第六章:EM算法
第七章:GMM聚類實(shí)踐
第八章:Xboost算法
第九章:推薦系統(tǒng)
第十章:推薦系統(tǒng)實(shí)踐
第十一章:貝葉斯算法
第十二章:Python文本數(shù)據(jù)分析
第十三章:KMEANS聚類
第十四章:DBSCAN聚類
第十五章:聚類實(shí)踐
第十六章:時間序列ARIMA模型
第十七章: 時間序列預(yù)測任務(wù)
第十八章:語言模型
第十九章:自然語言處理word2vec
第二十章:使用word2vec進(jìn)行分類任務(wù)
第二十一章:Gensim中文詞向量建模
第二十二章:自然語言處理-遞歸神經(jīng)網(wǎng)絡(luò)
第二十三章:遞歸神經(jīng)網(wǎng)絡(luò)實(shí)戰(zhàn)-情感分析
第二十四章:探索性數(shù)據(jù)分析-賽事數(shù)據(jù)集分析
第二十五章:探索性數(shù)據(jù)分析-農(nóng)糧數(shù)據(jù)分析
長按識別二維碼
即可報(bào)名學(xué)習(xí)
拓展篇(共88學(xué)時)
(課程大綱)
《Python數(shù)據(jù)科學(xué)必備四大主流庫》(¥198)
第一章:Python基礎(chǔ)(免費(fèi)試學(xué))
第二章:科學(xué)計(jì)算庫Numpy
第三章:數(shù)據(jù)分析處理庫Pandas
第四章:可視化庫Matplotlib
第五章:Seaborn可視化庫
長按識別二維碼
即可報(bào)名學(xué)習(xí)
課程特色
學(xué)習(xí)平臺——騰訊課堂
上課形式——錄播(可反復(fù)觀看)
學(xué)習(xí)周期——兩個月(學(xué)習(xí)建議:2小時/周)
答疑方式——課程配有專屬學(xué)習(xí)群,老師隨時解答
課程資料——配有專屬課件代碼與實(shí)戰(zhàn)案例
課程收益——快速掌握機(jī)器學(xué)習(xí)的基礎(chǔ)知識;掌握機(jī)器學(xué)習(xí)的四大主流庫;獨(dú)立完成項(xiàng)目實(shí)戰(zhàn)
適用群體
零基礎(chǔ)使用者
機(jī)器學(xué)習(xí)、深度學(xué)習(xí)愛好者
科研工作者,特別是打算邁入人工智能領(lǐng)域的工作者
授課老師
作為主講人,唐老師將把多年的機(jī)器學(xué)習(xí)經(jīng)驗(yàn)和Python使用技巧分享給大家。因此課程傳授的不僅是知識,還有思維和方法。
特別提醒
基礎(chǔ)篇
課程價(jià)格——¥398
課程優(yōu)惠
①新學(xué)員
限量發(fā)放50元優(yōu)惠券,公眾號后臺對話框回復(fù)“機(jī)器學(xué)習(xí)”領(lǐng)取
②老學(xué)員(報(bào)名過我們?nèi)我桓顿M(fèi)課程的學(xué)員)
評價(jià)已報(bào)名的課程,并截圖發(fā)給助教,即可領(lǐng)取55元優(yōu)惠券
進(jìn)階篇
課程價(jià)格——¥398
課程優(yōu)惠
①新學(xué)員
限量發(fā)放50元優(yōu)惠券,公眾號后臺對話框回復(fù)“實(shí)戰(zhàn)進(jìn)階”領(lǐng)取
②老學(xué)員(報(bào)名過我們?nèi)我桓顿M(fèi)課程的學(xué)員)
評價(jià)已報(bào)名的課程,并截圖發(fā)給助教,即可領(lǐng)取55元優(yōu)惠券
拓展篇
課程價(jià)格——¥198
課程優(yōu)惠
本課程暫無優(yōu)惠
注意事項(xiàng)
①Python交流群:114109947
②課程有疑問或成功報(bào)名均請聯(lián)系助教?
小七微信:zwjlee001
大魚QQ:210187565
案例來源:
https://blog.csdn.net/luanpeng825485697/article/details/78425612
作者:欒鵬
本文由數(shù)據(jù)與算法之美整理
案例版權(quán)歸原作者所有,如有侵權(quán)請留言聯(lián)系刪除,感謝合作。
來吧,點(diǎn)擊下方“閱讀原文”,跟隨著老師的腳步,提升自我!
總結(jié)
以上是生活随笔為你收集整理的人工智能路上,怎么能少了它!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员年入50万,我们该如何努力达到这个
- 下一篇: Java 常见的 30 个误区与细节!