本書是一本針對(duì)所有層次的智能技術(shù)讀者而作的基于Python實(shí)現(xiàn)智能技術(shù)的入門書。全書分四大部分:第一部分介紹用Python獲取數(shù)據(jù)所必須了解的基本概念,其中包括Python語(yǔ)法,HTTP標(biāo)記和基本文件存儲(chǔ),以及從網(wǎng)頁(yè)中爬取數(shù)據(jù)的方法和爬蟲(chóng)框架等內(nèi)容。第二部分討論了JSON數(shù)據(jù)格式和基于結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)庫(kù)的存儲(chǔ),包括MYSQL數(shù)據(jù)庫(kù),MONGO數(shù)據(jù)庫(kù)和REDIS數(shù)據(jù)庫(kù)的基本使用。第三部分介紹處理
本教材的基本內(nèi)容是將人工智能領(lǐng)域中的機(jī)器學(xué)習(xí)、數(shù)據(jù)挖掘等智能技術(shù)應(yīng)用于人文和社科領(lǐng)域。本教材共分為9章。
第一章討論了大數(shù)據(jù)技術(shù)的一些基本概念,同時(shí)還對(duì)計(jì)算機(jī)語(yǔ)言Python進(jìn)行了簡(jiǎn)要介紹,它們是學(xué)習(xí)智能技術(shù)的基礎(chǔ)。第二章討論了基于Python的計(jì)算機(jī)爬蟲(chóng)與網(wǎng)頁(yè)交互的基本原理和爬蟲(chóng)技術(shù)的應(yīng)用。第三章介紹了爬蟲(chóng)框架,為了節(jié)約開(kāi)發(fā)成本和避免重復(fù)工作,利用爬蟲(chóng)框架可以設(shè)計(jì)滿足應(yīng)用要求的數(shù)據(jù)爬蟲(chóng)。第四章介紹了數(shù)據(jù)存儲(chǔ)的相關(guān)概念和各種具體的存儲(chǔ)方法,主要包括文件格式的數(shù)據(jù)存儲(chǔ),如純文本格式、CSV格式、Excel格式和基于數(shù)據(jù)庫(kù)的存儲(chǔ),包括MySQL數(shù)據(jù)庫(kù)、Mongo數(shù)據(jù)庫(kù)和Redis數(shù)據(jù)庫(kù)。第五章討論了數(shù)據(jù)挖掘的基本概念。近些年來(lái)隨著大數(shù)據(jù)技術(shù)的快速發(fā)展,數(shù)據(jù)模型方法也在不斷發(fā)展,內(nèi)容非常豐富。傳統(tǒng)的數(shù)據(jù)統(tǒng)計(jì)和分析方法正在向數(shù)據(jù)挖掘模型領(lǐng)域過(guò)渡。大數(shù)據(jù)模型的分析結(jié)果為決策者提供了更加豐富的決策依據(jù)。這章介紹了貝葉斯決策模型的基本原理,并將這個(gè)模型應(yīng)用到一個(gè)信用卡申請(qǐng)數(shù)據(jù)集上。第六、七章分別介紹了Python的數(shù)據(jù)處理工具——Numpy庫(kù)和Pandas庫(kù)。雖然它們都是Python的第三方庫(kù),但它們?cè)跀?shù)據(jù)分析和數(shù)據(jù)挖掘領(lǐng)域中具有非常重要的地位。數(shù)據(jù)挖掘算法中大部分的數(shù)據(jù)處理是調(diào)用Numpy庫(kù)來(lái)完成基礎(chǔ)數(shù)據(jù)計(jì)算的。這是由于Numpy比Python語(yǔ)言中的列表更具有優(yōu)勢(shì),其中一個(gè)優(yōu)勢(shì)就是運(yùn)算速度。一般來(lái)說(shuō)對(duì)大型數(shù)組進(jìn)行運(yùn)算時(shí),Numpy庫(kù)的運(yùn)算速度比Python列表的運(yùn)算速度快了好幾百倍。另一方面,Pandas又是基于Numpy開(kāi)發(fā)出來(lái)的第三方庫(kù),其特點(diǎn)為數(shù)據(jù)面板和數(shù)據(jù)分析二者的集成。它提供靈活的數(shù)據(jù)結(jié)構(gòu),并提供一些標(biāo)準(zhǔn)的數(shù)據(jù)模型,能夠高效地操作大型數(shù)據(jù)集。Pandas提供了大量能使我們快速高效地處理數(shù)據(jù)的函數(shù)和方法。第八章討論了如何對(duì)數(shù)據(jù)進(jìn)行清洗以方便數(shù)據(jù)挖掘模型的使用。數(shù)據(jù)需要清洗的原因是在原始數(shù)據(jù)集中存在數(shù)據(jù)重復(fù)現(xiàn)象、數(shù)據(jù)缺失情況,或數(shù)據(jù)存在不一致性。所以數(shù)據(jù)清洗的目的就是為了刪除重復(fù)數(shù)據(jù),補(bǔ)齊缺失的數(shù)據(jù),消除數(shù)據(jù)的不一致性。這樣才能保證數(shù)據(jù)質(zhì)量來(lái)支撐數(shù)據(jù)挖掘模型。第九章介紹了數(shù)據(jù)可視化的概念和實(shí)現(xiàn)的技術(shù)。通常在進(jìn)行大數(shù)據(jù)分析時(shí),往往需要在運(yùn)行模型之前進(jìn)行探索性的數(shù)據(jù)分析,這樣方便我們對(duì)數(shù)據(jù)特性的了解。這時(shí)最直觀的方法是采用數(shù)據(jù)可視化技術(shù)達(dá)到解讀數(shù)據(jù)的目的。同樣在數(shù)據(jù)挖掘模型輸出結(jié)果之后,我們也可以利用可視化技術(shù)把最終的結(jié)果以各種表格或各種圖形呈現(xiàn)出來(lái)。
所以,這本教材的基本主線是,首先通過(guò)討論智能爬蟲(chóng)來(lái)達(dá)到收集數(shù)據(jù)并根據(jù)類型進(jìn)行處理后再存儲(chǔ)到數(shù)據(jù)文件或數(shù)據(jù)庫(kù)中。利用Numpy庫(kù)或Pandas庫(kù)進(jìn)行數(shù)據(jù)基本處理后,再利用數(shù)據(jù)挖掘模型對(duì)數(shù)據(jù)進(jìn)行訓(xùn)練并獲得模型輸出的結(jié)果,最后利用可視化技術(shù)展現(xiàn)結(jié)果供決策使用。
我們知道,近些年來(lái),隨著各種數(shù)據(jù)量的快速增長(zhǎng),傳統(tǒng)數(shù)據(jù)處理和分析方法顯得比較落后。而在財(cái)經(jīng)和人文學(xué)科中,傳統(tǒng)數(shù)據(jù)處理課程仍是主流,我們編寫這本教材的主要意圖是為工商管理、會(huì)計(jì)、金融、人力資源和社會(huì)保障專業(yè)的大專、本科和研究生提供基于大數(shù)據(jù)下的智能分析工具。通過(guò)學(xué)習(xí),這些專業(yè)的學(xué)生將能夠掌握如何從網(wǎng)絡(luò)中獲取、存儲(chǔ)、分析數(shù)據(jù)并顯現(xiàn)分析結(jié)果。比如,金融專業(yè)學(xué)生可以從網(wǎng)上快速獲取股票交易的實(shí)時(shí)或歷史數(shù)據(jù)來(lái)進(jìn)行分析,會(huì)計(jì)專業(yè)學(xué)生可從網(wǎng)上獲取上市公司年報(bào)數(shù)據(jù)進(jìn)行分析。
文科學(xué)生害怕計(jì)算機(jī)編程,在這本書中,我們使用Python語(yǔ)言的文本特性來(lái)實(shí)現(xiàn)數(shù)據(jù)提取、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)分析和數(shù)據(jù)的可視化應(yīng)用,目的在于降低文科學(xué)生的學(xué)習(xí)門檻并為解決問(wèn)題提供詳細(xì)的方法。本書中的所有Python源代碼都可用文本格式直接打開(kāi),具有非常好的可讀性,代碼可以在Python的人機(jī)對(duì)話環(huán)境中運(yùn)行,也可以在Jupyter或其他環(huán)境中運(yùn)行。
在本教材的寫作過(guò)程中,筆者獲得了首都經(jīng)濟(jì)貿(mào)易大學(xué)管理工程學(xué)院量化金融中心教師和研究生的支持,筆者在此對(duì)他們表示感謝。本書中的大部分例子和Python機(jī)器學(xué)習(xí)算法案例來(lái)自中心的研發(fā)結(jié)果。
康躍 1984年畢業(yè)于天津大學(xué),獲管理科學(xué)碩士學(xué)位,F(xiàn)為首都經(jīng)濟(jì)貿(mào)易大學(xué)管理工程學(xué)院管理科學(xué)系副教授。研究方向?yàn)閿?shù)學(xué)規(guī)劃、機(jī)器學(xué)習(xí)和智能技術(shù),出版《運(yùn)籌學(xué)》和《指數(shù)化投資》等教材和專著多部。曾任中國(guó)證券業(yè)協(xié)會(huì)信息技術(shù)委員會(huì)委員。
1智能技術(shù)學(xué)基礎(chǔ)
11大數(shù)據(jù)采集技術(shù)
12大數(shù)據(jù)存儲(chǔ)技術(shù)
13大數(shù)據(jù)分析與挖掘技術(shù)
14大數(shù)據(jù)可視化技術(shù)
15Python基礎(chǔ)
習(xí)題
2爬蟲(chóng)技術(shù)
21爬蟲(chóng)的相關(guān)知識(shí)體系
22Python Requests庫(kù)的使用
23正則表達(dá)式的使用
24XML和HTML文件的解析
25爬蟲(chóng)例子
26爬蟲(chóng)存取文件介紹
習(xí)題
3爬蟲(chóng)框架
31Scrapy框架與Spider類
32Scrapy框架與CrawlSpider類
習(xí)題
4大數(shù)據(jù)存儲(chǔ)技術(shù)
41數(shù)據(jù)存取基本文件
42PyMySQL基本功能和使用操作
43PyMongoDB基本功能和使用操作
44Redispy基本功能和使用操作
習(xí)題
5大數(shù)據(jù)分析與挖掘
51數(shù)據(jù)分析
52貝葉斯分類決策
53貝葉斯決策的Python庫(kù)
54數(shù)據(jù)標(biāo)準(zhǔn)化
55案例分析
習(xí)題
6Python數(shù)據(jù)分析工具——Numpy框架
61Numpy簡(jiǎn)介
62Numpy框架的使用
63Numpy的通用函數(shù)操作
習(xí)題
7Python數(shù)據(jù)挖掘工具——Pandas
71Pandas簡(jiǎn)介
72Pandas基本數(shù)據(jù)結(jié)構(gòu)
73Pandas基本功能介紹
74Pandas的數(shù)據(jù)分類
75數(shù)據(jù)分組groupby的應(yīng)用
習(xí)題
8數(shù)據(jù)清洗和預(yù)處理
81數(shù)據(jù)編碼問(wèn)題
82數(shù)據(jù)的清洗
83數(shù)據(jù)類型轉(zhuǎn)換操作
84字符串的操作
85時(shí)序數(shù)據(jù)處理
練習(xí)
9數(shù)據(jù)可視化
91Python可視化庫(kù)介紹
92Python的可視化模塊Tkinter
93Matplotlib繪圖庫(kù)
94Tkinter與Matplotlib的集成
習(xí)題