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