如何撬动机器学习的冰山一角?
目前,人工智能的應用日漸廣泛。
而作為人工智能核心的機器學習,是一門多領域的交叉學科,專門研究計算機模擬或實現人類學習行為的方法,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的性能。
簡單來說,機器學習就是優化數學方程式的過程。但在實際生活中,機器學習已經在金融、科研等領域蓬勃發展。
舉個例子,運用爬蟲技術來獲取東方財富網的股票信息。
首先,明確需要獲取的信息:
總市值、凈資產、凈利潤、市盈率、市凈率、毛利率、凈利率 ROE
根據目標,準備以下材料:
東方財富網址:http://quote.eastmoney.com/stocklist.html
環境:python2.7/python3.6
需要安裝:BeautifulSoup包、requests包、lxml包
進入我們事先準備的東方財富網站,先爬取股票匯總頁面,如下圖所示:
(直看得眼花繚亂)
接著進入每只股票的詳情頁,爬取每只股票的具體信息,以下圖兩家為例:
那我們是如何獲取到想要的數據的呢?
來瞧瞧撬動這個冰山一角的代碼:
#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矩陣分解?? ?
第二十七章 聚類與集成算法??
第二十八章 機器學習業務流程???
長按識別二維碼
即可報名學習
進階篇(共113學時)
(課程大綱)
《Python機器學習實戰——進階課程》(¥398)
第一章:Seaborn可視化庫(免費試學)
第二章:降維算法-線性判別分析
第三章:Python實現線性判別分析
第四章:PCA主成分分析
第五章:Python實現PCA主成分分析
第六章:EM算法
第七章:GMM聚類實踐
第八章:Xboost算法
第九章:推薦系統
第十章:推薦系統實踐
第十一章:貝葉斯算法
第十二章:Python文本數據分析
第十三章:KMEANS聚類
第十四章:DBSCAN聚類
第十五章:聚類實踐
第十六章:時間序列ARIMA模型
第十七章: 時間序列預測任務
第十八章:語言模型
第十九章:自然語言處理word2vec
第二十章:使用word2vec進行分類任務
第二十一章:Gensim中文詞向量建模
第二十二章:自然語言處理-遞歸神經網絡
第二十三章:遞歸神經網絡實戰-情感分析
第二十四章:探索性數據分析-賽事數據集分析
第二十五章:探索性數據分析-農糧數據分析
長按識別二維碼
即可報名學習
拓展篇(共88學時)
(課程大綱)
《Python數據科學必備四大主流庫》(¥198)
第一章:Python基礎(免費試學)
第二章:科學計算庫Numpy
第三章:數據分析處理庫Pandas
第四章:可視化庫Matplotlib
第五章:Seaborn可視化庫
長按識別二維碼
即可報名學習
課程特色
學習平臺——騰訊課堂
上課形式——錄播(可反復觀看)
學習周期——兩個月(學習建議:2小時/周)
答疑方式——課程配有專屬學習群,老師隨時解答
課程資料——配有專屬課件代碼與實戰案例
課程收益——快速掌握機器學習的基礎知識;掌握機器學習的四大主流庫;獨立完成項目實戰
適用群體
零基礎使用者
機器學習、深度學習愛好者
科研工作者,特別是打算邁入人工智能領域的工作者
授課老師
作為主講人,唐老師將把多年的機器學習經驗和Python使用技巧分享給大家。因此課程傳授的不僅是知識,還有思維和方法。
特別提醒
基礎篇
課程價格——¥398
課程優惠
①新學員
限量發放50元優惠券,公眾號后臺對話框回復“機器學習”領取
②老學員(報名過我們任一付費課程的學員)
評價已報名的課程,并截圖發給助教,即可領取55元優惠券
進階篇
課程價格——¥398
課程優惠
①新學員
限量發放50元優惠券,公眾號后臺對話框回復“實戰進階”領取
②老學員(報名過我們任一付費課程的學員)
評價已報名的課程,并截圖發給助教,即可領取55元優惠券
拓展篇
課程價格——¥198
課程優惠
本課程暫無優惠
注意事項
①Python交流群:114109947
②課程有疑問或成功報名均請聯系助教?
小七微信:zwjlee001
大魚QQ:210187565
案例來源:
https://blog.csdn.net/luanpeng825485697/article/details/78425612
作者:欒鵬
本文由數據與算法之美整理
案例版權歸原作者所有,如有侵權請留言聯系刪除,感謝合作。
來吧,點擊下方“閱讀原文”,跟隨著老師的腳步,提升自我!
總結
以上是生活随笔為你收集整理的如何撬动机器学习的冰山一角?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为21级程序员月薪曝光:270k封神!
- 下一篇: MIT正式发布编程语言Julia 1.0