書名: SQL機(jī)器學(xué)習(xí)庫(kù)MADlib技術(shù)解析作者名: 王雪迎本章字?jǐn)?shù): 1605字更新時(shí)間: 2020-06-29 18:08:03
前言
從2016年AlphaGo在人機(jī)大戰(zhàn)中勝出以來(lái),AI(Artificial Intelligence,人工智能)已然成為時(shí)下最熱門的概念之一。似乎所有人嘴邊都掛著“AI”一詞,大批程序員躍躍欲試,轉(zhuǎn)向研究這種“全新”的技術(shù)。人工智能的研究歷史有著一條從以“推理”為重點(diǎn),到以“知識(shí)”為重點(diǎn),再到以“學(xué)習(xí)”為重點(diǎn)的自然、清晰的脈絡(luò)。顯然,機(jī)器學(xué)習(xí)是實(shí)現(xiàn)人工智能的一條途徑,即以機(jī)器學(xué)習(xí)為手段解決人工智能中的現(xiàn)實(shí)問(wèn)題。在實(shí)踐過(guò)程中,大多數(shù)人工智能處理任務(wù)其實(shí)是用機(jī)器學(xué)習(xí)的方式完成的。機(jī)器學(xué)習(xí)可以用程序和算法自動(dòng)學(xué)習(xí),只要被設(shè)計(jì)好,程序就可以進(jìn)行自我優(yōu)化。同時(shí),機(jī)器學(xué)習(xí)需要一定數(shù)量的訓(xùn)練數(shù)據(jù),用于構(gòu)建來(lái)自過(guò)往經(jīng)驗(yàn)的知識(shí)(通常指訓(xùn)練后形成的數(shù)學(xué)模型)。機(jī)器學(xué)習(xí)目前在實(shí)踐中最重要的是預(yù)測(cè)功能。比如訓(xùn)練結(jié)束后,現(xiàn)在有一個(gè)新的數(shù)據(jù)集X,需要預(yù)測(cè)其分類,機(jī)器學(xué)習(xí)算法會(huì)根據(jù)這個(gè)新數(shù)據(jù)與訓(xùn)練后形成的知識(shí)相匹配,然后將這個(gè)數(shù)據(jù)集X分類到某類C去。推薦系統(tǒng)則是另一個(gè)比較常見的機(jī)器學(xué)習(xí)使用場(chǎng)景。
經(jīng)過(guò)三十多年的發(fā)展,機(jī)器學(xué)習(xí)已成為一門多領(lǐng)域交叉學(xué)科,涉及概率論、統(tǒng)計(jì)學(xué)、逼近論、凸分析、計(jì)算復(fù)雜性理論等多門學(xué)科。很明顯,自己開發(fā)機(jī)器學(xué)習(xí)算法需要具有極強(qiáng)的數(shù)學(xué)功底。幸運(yùn)的是,很多軟件包提供絕大多數(shù)常用算法,無(wú)論是側(cè)重于統(tǒng)計(jì)的SAS、SPSS還是流行的MATLAB、R、Python、TensorFlow等。它們都是面向程序員的系統(tǒng)或語(yǔ)言,重點(diǎn)在于由程序員自己利用系統(tǒng)提供的基本計(jì)算方法或函數(shù),通過(guò)編程的方式完成實(shí)際所需的分析模型。
作為一名數(shù)據(jù)庫(kù)開發(fā)人員或DBA,當(dāng)面對(duì)聚類分析或主成分分析等問(wèn)題時(shí)可能會(huì)一籌莫展。原因很簡(jiǎn)單,用經(jīng)典SQL語(yǔ)言實(shí)現(xiàn)這類復(fù)雜模型基本是不可能的。現(xiàn)在,DBA利用MADlib,只需使用SQL查詢就能實(shí)現(xiàn)簡(jiǎn)單的機(jī)器學(xué)習(xí),這也正是編寫本書的初衷。MADlib與其他機(jī)器學(xué)習(xí)工具具有完全不同的設(shè)計(jì)理念。它不是面向程序員的,而是面向數(shù)據(jù)庫(kù)開發(fā)人員或DBA的,是基于SQL的大數(shù)據(jù)機(jī)器學(xué)習(xí)庫(kù)。MADlib將SQL的簡(jiǎn)單易用性與機(jī)器學(xué)習(xí)的復(fù)雜算法相結(jié)合,充分利用了兩者的優(yōu)勢(shì)和特點(diǎn)。對(duì)于廣大傳統(tǒng)數(shù)據(jù)庫(kù)應(yīng)用技術(shù)人員來(lái)說(shuō),學(xué)習(xí)和從事機(jī)器學(xué)習(xí)工作的門檻將大大降低。對(duì)用戶而言,MADlib提供了可在SQL查詢語(yǔ)句中調(diào)用的函數(shù),不僅包括基本的線性代數(shù)運(yùn)算和統(tǒng)計(jì)函數(shù),還提供了常用的、現(xiàn)成的機(jī)器學(xué)習(xí)模型函數(shù),實(shí)現(xiàn)了分類、聚類、關(guān)聯(lián)、回歸、預(yù)測(cè)、評(píng)估等應(yīng)用中的常見算法。用戶不需要深入了解算法的程序?qū)崿F(xiàn)細(xì)節(jié),只要搞清楚各函數(shù)中相關(guān)參數(shù)的含義、提供正確的入?yún)⒉⒛軌蚶斫夂徒忉尯瘮?shù)的輸出結(jié)果即可。
一年來(lái),我一直在撰寫MADlib相關(guān)的文章和博客,并在利用MADlib實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法上做了一些基礎(chǔ)的技術(shù)實(shí)踐。本書就是對(duì)上述工作的系統(tǒng)歸納與總結(jié)。全書共分11章,從MADlib的基本概念入手,首先介紹MADlib的工作原理、執(zhí)行流程、基礎(chǔ)架構(gòu)、支持的模型與功能,以及MADlib的安裝與卸載;然后詳細(xì)解析MADlib各種模型的具體用法,其中包括數(shù)據(jù)類型、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)探索、回歸、時(shí)間序列分析、分類、聚類、關(guān)聯(lián)規(guī)則、圖算法、模型評(píng)估十個(gè)大類(每個(gè)大類用一章的篇幅,從背景知識(shí)、函數(shù)用法、應(yīng)用示例三方面進(jìn)行詳細(xì)說(shuō)明)。本書中的所有討論都以MADlib 1.10版本為基礎(chǔ),重點(diǎn)在于說(shuō)明MADlib提供了哪些模塊算法和函數(shù)、用途,以及如何在SQL中調(diào)用。由于本書偏重應(yīng)用,因此我們對(duì)每種算法相關(guān)的數(shù)學(xué)概念都只是淺嘗輒止,并沒(méi)有進(jìn)行詳細(xì)的數(shù)學(xué)推導(dǎo)。
本書適合數(shù)據(jù)庫(kù)應(yīng)用開發(fā)或管理人員、數(shù)據(jù)挖掘工程師、數(shù)據(jù)分析師或其他機(jī)器學(xué)習(xí)類技術(shù)人員閱讀,也適合高等院校和培訓(xùn)學(xué)校相關(guān)專業(yè)的師生教學(xué)參考。
在本書編寫過(guò)程中,得到了很多人的幫助與支持。感謝CSDN提供的技術(shù)分享平臺(tái),為我提供了一個(gè)將博客文章整理成書的機(jī)會(huì)。感謝優(yōu)貝在線的所有同事,特別是技術(shù)部的同事,他們?cè)诠ぷ髦械亩αο嘀刮矣懈嗟臅r(shí)間投入到本書的寫作中。最后,感謝家人對(duì)我一如既往地支持。
因?yàn)樗接邢蓿杪┲幵谒y免,希望廣大讀者批評(píng)指正。
源代碼下載
本書配套的代碼及相關(guān)資料可以掃描下面的二維碼獲取:

如果下載有問(wèn)題,請(qǐng)聯(lián)系booksaga@163.com,郵件主題為“MADlib技術(shù)解析”。
著者
2018年11月
- Big Data Analytics with Hadoop 3
- 程序設(shè)計(jì)缺陷分析與實(shí)踐
- 數(shù)控銑削(加工中心)編程與加工
- 21天學(xué)通C#
- 大數(shù)據(jù)處理平臺(tái)
- 具比例時(shí)滯遞歸神經(jīng)網(wǎng)絡(luò)的穩(wěn)定性及其仿真與應(yīng)用
- 中國(guó)戰(zhàn)略性新興產(chǎn)業(yè)研究與發(fā)展·工業(yè)機(jī)器人
- 網(wǎng)絡(luò)服務(wù)搭建、配置與管理大全(Linux版)
- Machine Learning Algorithms(Second Edition)
- 在實(shí)戰(zhàn)中成長(zhǎng):C++開發(fā)之路
- Excel 2007終極技巧金典
- 經(jīng)典Java EE企業(yè)應(yīng)用實(shí)戰(zhàn)
- 筆記本電腦維修之電路分析基礎(chǔ)
- Flash CS5二維動(dòng)畫設(shè)計(jì)與制作
- 網(wǎng)絡(luò)安全原理與應(yīng)用