精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

如何使用 SQL 對(duì)數(shù)據(jù)進(jìn)行分析

數(shù)據(jù)庫(kù) SQL Server 數(shù)據(jù)分析
我們通過(guò) OLTP(聯(lián)機(jī)事務(wù)處理)系統(tǒng)實(shí)時(shí)處理用戶數(shù)據(jù),還需要在 OLAP(聯(lián)機(jī)分析處理)系統(tǒng)中對(duì)它們進(jìn)行分析,今天我們來(lái)看下如何使用 SQL 分析數(shù)據(jù)。

前言

我們通過(guò) OLTP(聯(lián)機(jī)事務(wù)處理)系統(tǒng)實(shí)時(shí)處理用戶數(shù)據(jù),還需要在 OLAP(聯(lián)機(jī)分析處理)系統(tǒng)中對(duì)它們進(jìn)行分析,今天我們來(lái)看下如何使用 SQL 分析數(shù)據(jù)。

使用 SQL 進(jìn)行數(shù)據(jù)分析的幾種方式

在 DBMS(數(shù)據(jù)庫(kù)管理系統(tǒng)) 中,有些數(shù)據(jù)庫(kù)很好地集成了 BI 工具,可以方便我們對(duì)收集的數(shù)據(jù)進(jìn)行商業(yè)分析。 比如在SQL Server 中提供了 BI 分析工具,我們可以通過(guò)使用 SQL Server中的 Analysis Services 完成數(shù)據(jù)挖掘任務(wù)。SQL Server 內(nèi)置了多種數(shù)據(jù)挖掘算法,比如常用的 EM、K-Means 聚類算法、決策樹、樸素貝葉斯和邏輯回歸等分類算法,以及神經(jīng)網(wǎng)絡(luò)等模型。我們還可以對(duì)這些算法模型進(jìn)行可視化效果呈現(xiàn),幫我們優(yōu)化和評(píng)估算法模型的好壞。

如何使用 SQL 對(duì)數(shù)據(jù)進(jìn)行分析

另外 PostgreSQL 是一個(gè)免費(fèi)開源的關(guān)系數(shù)據(jù)庫(kù)(ORDBMS),它的穩(wěn)定性非常強(qiáng),功能強(qiáng)大,在 OLTP 和 OLAP 系統(tǒng)上表現(xiàn)都非常出色。同時(shí)在機(jī)器學(xué)習(xí)上,配合 Madlib 項(xiàng)目可以讓 PostgreSQL 如虎添翼。Madlib 包括了多種機(jī)器學(xué)習(xí)算法,比如分類、聚類、文本分析、回歸分析、關(guān)聯(lián)規(guī)則挖掘和驗(yàn)證分析等功能。這樣我們可以通過(guò)使用 SQL,在 PostgreSQL 中使用各種機(jī)器學(xué)習(xí)算法模型,幫我們進(jìn)行數(shù)據(jù)挖掘和分析。

2018 年 Google 將機(jī)器學(xué)習(xí)(Machine Learning)工具集成到了 BigQuery 中,發(fā)布了 BigQuery ML,這樣開發(fā)者就可以在大型的結(jié)構(gòu)化或半結(jié)構(gòu)化的數(shù)據(jù)集上構(gòu)建和使用機(jī)器學(xué)習(xí)模型。通過(guò) BigQuery 控制臺(tái),開發(fā)者可以像使用 SQL 語(yǔ)句一樣來(lái)完成機(jī)器學(xué)習(xí)模型的訓(xùn)練和預(yù)測(cè)。

如何使用 SQL 對(duì)數(shù)據(jù)進(jìn)行分析

SQLFlow 是螞蟻金服于 2019 年開源的機(jī)器學(xué)習(xí)工具,我們可以通過(guò)使用 SQL 就可以完成機(jī)器學(xué)習(xí)算法的調(diào)用,你可以將 SQLFlow 理解為機(jī)器學(xué)習(xí)的翻譯器。我們?cè)?SELECT 之后加上 TRAIN 從句就可以完成機(jī)器學(xué)習(xí)模型的訓(xùn)練,在 SELECT 語(yǔ)句之后加上 PREDICT 就可以使用模型來(lái)進(jìn)行預(yù)測(cè)。這些算法模型既包括了傳統(tǒng)的機(jī)器學(xué)習(xí)模型,也包括了基于 Tensorflow、PyTorch 等框架的深度學(xué)習(xí)模型。

如何使用 SQL 對(duì)數(shù)據(jù)進(jìn)行分析

從上圖中你能看出 SQLFlow 的使用過(guò)程,首先我們可以通過(guò) Jupyter notebook 來(lái)完成 SQL 語(yǔ)句的交互。SQLFlow 支持了多種 SQL 引擎,包括 MySQL、Oracle、Hive、SparkSQL 和 Flink 等,這樣我們就可以通過(guò) SQL 語(yǔ)句從這些 DBMS 數(shù)據(jù)庫(kù)中抽取數(shù)據(jù),然后選擇想要進(jìn)行的機(jī)器學(xué)習(xí)算法(包括傳統(tǒng)機(jī)器學(xué)習(xí)和深度學(xué)習(xí)模型)進(jìn)行訓(xùn)練和預(yù)測(cè)。不過(guò)這個(gè)工具剛剛上線,工具、文檔、社區(qū)還有很多需要完善的地方。

最后一個(gè)最常用方法是 SQL+Python,也是我們今天要重點(diǎn)講解的內(nèi)容。上面介紹的工具可以說(shuō)既是 SQL 查詢數(shù)據(jù)的入口,也是數(shù)據(jù)分析、機(jī)器學(xué)習(xí)的入口。不過(guò)這些模塊耦合度高,也可能存在使用的問(wèn)題。一方面工具會(huì)很大,比如在安裝 SQLFlow 的時(shí)候,采用 Docker 方式進(jìn)行安裝,整體需要下載的文件會(huì)超過(guò) 2G。同時(shí),在進(jìn)行算法調(diào)參、優(yōu)化的時(shí)候也存在靈活度差的情況。因此最直接的方式,還是將 SQL 與數(shù)據(jù)分析模塊分開,采用 SQL 讀取數(shù)據(jù),然后通過(guò) Python 來(lái)進(jìn)行數(shù)據(jù)分析的處理。

案例:挖掘購(gòu)物數(shù)據(jù)中的頻繁項(xiàng)集與關(guān)聯(lián)規(guī)則

下面我們通過(guò)一個(gè)案例來(lái)進(jìn)行具體的講解。

我們要分析的是購(gòu)物問(wèn)題,采用的技術(shù)為關(guān)聯(lián)分析。它可以幫我們?cè)诖罅康臄?shù)據(jù)集中找到商品之間的關(guān)聯(lián)關(guān)系,從而挖掘出經(jīng)常被人們購(gòu)買的商品組合,一個(gè)經(jīng)典的例子就是“啤酒和尿布”的例子。

今天我們的數(shù)據(jù)集來(lái)自于一個(gè)購(gòu)物樣本數(shù)據(jù),字段包括了 trans_id(交易 ID)以及 product(商品名稱),具體的數(shù)據(jù)集參考下面的初始化 sql:

  1. DROP TABLE IF EXISTS test_data;  
  2. CREATE TABLE test_data (  
  3.     trans_id INT,  
  4.     product TEXT  
  5. );  
  6. INSERT INTO test_data VALUES (1, 'beer');  
  7. INSERT INTO test_data VALUES (1, 'diapers');  
  8. INSERT INTO test_data VALUES (1, 'chips');  
  9. INSERT INTO test_data VALUES (2, 'beer');  
  10. INSERT INTO test_data VALUES (2, 'diapers');  
  11. INSERT INTO test_data VALUES (3, 'beer');  
  12. INSERT INTO test_data VALUES (3, 'diapers');  
  13. INSERT INTO test_data VALUES (4, 'beer');  
  14. INSERT INTO test_data VALUES (4, 'chips');  
  15. INSERT INTO test_data VALUES (5, 'beer');  
  16. INSERT INTO test_data VALUES (6, 'beer');  
  17. INSERT INTO test_data VALUES (6, 'diapers');  
  18. INSERT INTO test_data VALUES (6, 'chips');  
  19. INSERT INTO test_data VALUES (7, 'beer');  
  20. INSERT INTO test_data VALUES (7, 'diapers');  

這里我們采用的關(guān)聯(lián)分析算法是 Apriori 算法,它幫我們查找頻繁項(xiàng)集,首先我們需要先明白什么是頻繁項(xiàng)集。

頻繁項(xiàng)集就是支持度大于等于最小支持度閾值的項(xiàng)集,小于這個(gè)最小值支持度的項(xiàng)目就是非頻繁項(xiàng)集,而大于等于最小支持度的項(xiàng)集就是頻繁項(xiàng)集。支持度是個(gè)百分比,指的是某個(gè)商品組合出現(xiàn)的次數(shù)與總次數(shù)之間的比例。支持度越高,代表這個(gè)組合出現(xiàn)的頻率越大。

我們?cè)賮?lái)看下 Apriori 算法的基本原理。

Apriori 算法其實(shí)就是查找頻繁項(xiàng)集 (frequent itemset) 的過(guò)程: 0.設(shè)置一個(gè)最小支持度, 1.從K=1開始,篩選頻繁項(xiàng)集。 2.在結(jié)果中,組合K+1項(xiàng)集,再次篩選 3.循環(huán)1、2步。直到找不到結(jié)果為止,K-1項(xiàng)集的結(jié)果就是最終結(jié)果。

我們來(lái)看下數(shù)據(jù)理解一下,下面是所有的訂單,以及每筆訂單購(gòu)買的商品:

如何使用 SQL 對(duì)數(shù)據(jù)進(jìn)行分析

在這個(gè)例子中,“啤酒”出現(xiàn)了 7 次,那么這 7 筆訂單中“牛奶”的支持度就是 7/7=1。同樣“啤酒 + 尿布”出現(xiàn)了 5 次,那么這 7 筆訂單中的支持度就是 5/7=0.71。

同時(shí),我們還需要理解一個(gè)概念叫做“置信度”,它表示的是當(dāng)你購(gòu)買了商品 A,會(huì)有多大的概率購(gòu)買商品 B,在這個(gè)例子中,置信度(啤酒→尿布)=5/7=0.71,代表如果你購(gòu)買了啤酒,會(huì)有 71% 的概率會(huì)購(gòu)買尿布;置信度(啤酒→薯?xiàng)l)=3/7=0.43,代表如果你購(gòu)買了啤酒,有 43% 的概率會(huì)購(gòu)買薯?xiàng)l。

所以說(shuō)置信度是個(gè)條件概念,指的是在 A 發(fā)生的情況下,B 發(fā)生的概率是多少。

我們?cè)谟?jì)算關(guān)聯(lián)關(guān)系的時(shí)候,往往需要規(guī)定最小支持度和最小置信度,這樣才可以尋找大于等于最小支持度的頻繁項(xiàng)集,以及在頻繁項(xiàng)集的基礎(chǔ)上,大于等于最小置信度的關(guān)聯(lián)規(guī)則。

使用 MADlib+PostgreSQL 完成購(gòu)物數(shù)據(jù)的關(guān)聯(lián)分析

針對(duì)上面的購(gòu)物數(shù)據(jù)關(guān)聯(lián)分析的案例我們可以使用工具自帶的關(guān)聯(lián)規(guī)則進(jìn)行分析,下面我們演示使用 PostgreSQL 數(shù)據(jù)庫(kù)在 Madlib 工具中都可以找到相應(yīng)的關(guān)聯(lián)規(guī)則,通過(guò)寫 SQL 的方式就可以完成關(guān)聯(lián)規(guī)則的調(diào)用分析。

開發(fā)環(huán)境

  • Windows/MacOS
  • Navicat Premium 11.2.7及以上

服務(wù)器環(huán)境

  • Centos 7.6
  • Docker
  • PostgreSQL 9.6
  • MADlib 1.4及以上

使用 Docker 安裝 MADlib+PostgreSQL

拉取 docker 鏡像(這個(gè)鏡像提供了需要的 postgres 等環(huán)境,并沒(méi)有安裝 madlib) :

  1. docker pull madlib/postgres_9.6:latest  

下載 MADlib github 源碼. 假定下載的源碼位置為 /home/git-repo/github/madlib:

  1. cd /home/git-repo/github && git clone git@github.com:apache/madlib.git  

啟動(dòng)容器,并建立本機(jī)目錄與容器中系統(tǒng)的路徑映射,共享的目錄在容器和本機(jī)之間是讀寫共享的。

  1. docker run -d -it --name madlib -v /home/git-repo/github/madlib:/incubator-madlib/ madlib/postgres_9.6  

啟動(dòng)容器后,連接容器編譯 MADlib 組件,編譯用時(shí)約 30 分鐘:

  1. docker exec -it madlib bash  
  2. mkdir /incubator-madlib/build-docker  
  3. cd /incubator-madlib/build-docker  
  4. cmake ..  
  5. make  
  6. make doc  
  7. make install  

在容器中安裝 MADlib:

  1. src/bin/madpack -p postgres -c postgres/postgres@localhost:5432/postgres install  

運(yùn)行 MADlib 測(cè)試:

  1. # Run install checkon all modules:  
  2. src/bin/madpack -p postgres -c postgres/postgres@localhost:5432/postgres install-check  
  3.   
  4. # Run install checkon a specific module, say svm:  
  5. src/bin/madpack -p postgres -c postgres/postgres@localhost:5432/postgres install-check -t svm  
  6.   
  7. # Run dev checkon all modules (more comprehensive than install check):  
  8. src/bin/madpack -p postgres -c postgres/postgres@localhost:5432/postgres dev-check  
  9.   
  10. # Run dev checkon a specific module, say svm:  
  11. src/bin/madpack -p postgres -c postgres/postgres@localhost:5432/postgres dev-check -t svm  
  12.   
  13. # 如果需要,重新安裝 Reinstall MADlib:  
  14. src/bin/madpack -p postgres -c postgres/postgres@localhost:5432/postgres reinstall  

如果需要,先關(guān)掉并刪除容器,刪完再起新容器需要重新安裝:

  1. docker kill madlib  
  2. docker rm madlib  

用配置好的容器制作新鏡像,先查看容器 ID, 在用容器 ID 創(chuàng)建新鏡像:

  1. docker ps -a  
  2. docker commit <container id> my/madlib_pg9.6_dev  

用新鏡像創(chuàng)建新容器:

  1. docker run -d -it -p 5432:5432 --name madlib_dev -v /home/my/git-repo/github/madlib:/incubator-madlib/ madlib/postgres_9.6   

連接容器進(jìn)行交互(發(fā)現(xiàn)新容器還是沒(méi)有安裝,但是不用編譯了,安裝也很快,裝完測(cè)試一下)

  1. docker exec -it madlib_dev bash  
  2. cd  /incubator-madlib/build-docker  
  3. src/bin/madpack -p postgres -c postgres/postgres@localhost:5432/postgres install  
  4. src/bin/madpack -p postgres -c postgres/postgres@localhost:5432/postgres install-check  

使用 Navicat 遠(yuǎn)程連接 PostgreSQL(假定沒(méi)有修改登錄用戶和密碼,默認(rèn)沒(méi)有密碼)

最后,新建表并初始化數(shù)據(jù):

使用 SQL 完成關(guān)聯(lián)規(guī)則的調(diào)用分析

最后使用 SQL + MADlib 進(jìn)行關(guān)聯(lián)分析,這里我們?cè)O(shè)定了參數(shù)最小支持度為 0.25,最小置信度為 0.5。根據(jù)條件生成 transactions 中的關(guān)聯(lián)規(guī)則,如下所示:

  1. SELECT * FROM madlib.assoc_rules( .25,            -- 支持度  
  2.                                   .5,             -- 置信度  
  3.                                   'trans_id',     -- Transaction id 字段  
  4.                                   'product',      -- Product 字段  
  5.                                   'test_data',    -- 輸入數(shù)據(jù)  
  6.                                   NULL,           -- 輸出模式  
  7.                                   TRUE            -- 詳細(xì)輸出  
  8.                                 );  

查詢結(jié)果:

關(guān)聯(lián)規(guī)則存儲(chǔ)在 assoc_rules 表中:

  1. SELECT * FROM assoc_rules  
  2. ORDER BY support DESC, confidence DESC;  

注意: 關(guān)聯(lián)規(guī)則會(huì)始終創(chuàng)建一個(gè)名為的表 assoc_rules。如果要保留多個(gè)關(guān)聯(lián)規(guī)則表,請(qǐng)?jiān)谠俅芜\(yùn)行之前復(fù)制該表。

使用 SQL+Python 完成購(gòu)物數(shù)據(jù)的關(guān)聯(lián)分析

除此以外,我們還可以直接使用 SQL 完成數(shù)據(jù)的查詢,然后通過(guò) Python 的機(jī)器學(xué)習(xí)工具包完成關(guān)聯(lián)分析。

開發(fā)環(huán)境

  • Windows/MacOS
  • Navicat Premium 11.2.7及以上
  • Python 3.6

服務(wù)器環(huán)境

  • Centos 7.6
  • Docker
  • MySQL 5.7

使用 Docker 安裝 MySQL

拉取官方鏡像(我們這里選擇5.7,如果不寫后面的版本號(hào)則會(huì)自動(dòng)拉取最新版):

  1. docker pull mysql:5.7  

檢查是否拉取成功:

  1. docker images  
  2. REPOSITORY                        TAG                 IMAGE ID            CREATED             SIZE  
  3. docker.io/mysql                   5.7                 db39680b63ac        2 days ago          437 MB  

啟動(dòng)容器:

  1. docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7  
  • –name:容器名,此處命名為 mymysql;
  • -e:配置信息,此處配置 mysql 的 root 用戶的登陸密碼;
  • -p:端口映射,此處映射 主機(jī) 3306 端口到容器的 3306 端口;
  • -d:源鏡像名,此處為 mysql:5.7;
  • -v:主機(jī)和容器的目錄映射關(guān)系,":"前為主機(jī)目錄,之后為容器目錄。

檢查容器是否正常運(yùn)行:

  1. [root@VM_0_10_centos ~]# docker ps  
  2. CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES  
  3. d1e682cfdf76        mysql:5.7           "docker-entrypoint..."   14 seconds ago      Up 13 seconds       0.0.0.0:3306->3306/tcp, 33060/tcp   mymysql  

可以看到容器 ID、容器的源鏡像、啟動(dòng)命令、創(chuàng)建時(shí)間、狀態(tài)、端口映射信息、容器名字。

進(jìn)入 Docker 本地連接 MySQL 客戶端:

  1. sudo docker exec -it mymysql bash  
  2. mysql -u root -p   

設(shè)置遠(yuǎn)程訪問(wèn)賬號(hào),并授權(quán)遠(yuǎn)程連接:

  1. CREATE USER 'zuozewei'@'%' IDENTIFIED WITH mysql_native_password BY 'zuozewei';  
  2. GRANT ALL PRIVILEGES ON *.* TO 'zuozewei'@'%';     

使用 Navicat 遠(yuǎn)程連接 MySQL,新建數(shù)據(jù)庫(kù)并初始化數(shù)據(jù)。

編寫 Python 腳本完成數(shù)據(jù)分析

首先我們通過(guò) SQLAlchemy 來(lái)完成 SQL 查詢,使用 efficient_apriori 工具包的 Apriori 算法。 整個(gè)工程一共包括 3 個(gè)部分:

  • 第一個(gè)部分為數(shù)據(jù)加載,首先我們通過(guò) sql.create_engine 創(chuàng)建 SQL 連接,然后從數(shù)據(jù)集表中讀取全部的數(shù)據(jù)加載到 data 中。這里需要配置 MySQL 賬戶名和密碼;
  • 第二步為數(shù)據(jù)預(yù)處理。我們還需要得到一個(gè) transactions 數(shù)組,里面包括了每筆訂單的信息,其中每筆訂單是以集合的形式進(jìn)行存儲(chǔ)的,這樣相同的訂單中 item 就不存在重復(fù)的情況,同時(shí)也可以使用 Apriori 工具包直接進(jìn)行計(jì)算;
  • 最后一步,使用 Apriori 工具包進(jìn)行關(guān)聯(lián)分析,這里我們?cè)O(shè)定了參數(shù) min_support=0.25,min_confidence=0.5,也就是最小支持度為 0.25,最小置信度為 0.5。根據(jù)條件找出 transactions 中的頻繁項(xiàng)集 itemsets 和關(guān)聯(lián)規(guī)則 rules。

下載依賴庫(kù):

  1. #pip3 install 包名 -i 源的url 臨時(shí)換源  
  2. #清華大學(xué)源:https://pypi.tuna.tsinghua.edu.cn/simple/  
  3.   
  4. # 強(qiáng)大的數(shù)據(jù)結(jié)構(gòu)庫(kù),用于數(shù)據(jù)分析,時(shí)間序列和統(tǒng)計(jì)等  
  5. pip3 install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple/   
  6.   
  7. # python的orm程序  
  8. pip3 install SQLAlchemy -i https://pypi.tuna.tsinghua.edu.cn/simple/   
  9.   
  10. # Apriori算法的高效純Python實(shí)現(xiàn)  
  11. pip3 install efficient-apriori -i https://pypi.tuna.tsinghua.edu.cn/simple/   
  12.   
  13. # MySQL驅(qū)動(dòng)  
  14. pip3 install mysql-connector -i https://pypi.tuna.tsinghua.edu.cn/simple/   

具體的代碼如下:

  1. from efficient_apriori import apriori  
  2. import sqlalchemy as sql  
  3. import pandas as pd  
  4.   
  5. '''  
  6. 數(shù)據(jù)加載  
  7. '''  
  8.   
  9. # 創(chuàng)建數(shù)據(jù)庫(kù)連接  
  10. engine = sql.create_engine('mysql+mysqlconnector://zuozewei:zuozewei@server_ip/SQLApriori')  
  11. # 查詢數(shù)據(jù)  
  12. query = 'SELECT * FROM test_data'  
  13. # 加載到 data 中  
  14. data = pd.read_sql_query(query, engine)  
  15.   
  16. '''  
  17. 數(shù)據(jù)預(yù)處理  
  18. '''  
  19.   
  20. # 得到一維數(shù)組 orders_series,并且將 Transaction 作為 index, value 為 Item 取值  
  21. orders_series = data.set_index('trans_id')['product']  
  22. # 將數(shù)據(jù)集進(jìn)行格式轉(zhuǎn)換  
  23. transactions = []  
  24. temp_index = 0  
  25. for i, v in orders_series.items():  
  26.  if i != temp_index:  
  27.   temp_set = set()  
  28.   temp_index = i  
  29.   temp_set.add(v)  
  30.   transactions.append(temp_set)  
  31.  else:  
  32.   temp_set.add(v)  
  33.   
  34. '''  
  35. 數(shù)據(jù)分析  
  36. '''  
  37.   
  38. # 挖掘頻繁項(xiàng)集和頻繁規(guī)則  
  39. itemsets, rules = apriori(transactions, min_support=0.25,  min_confidence=0.5)  
  40.   
  41. print('頻繁項(xiàng)集:', itemsets)  
  42. print('關(guān)聯(lián)規(guī)則:', rules)  

運(yùn)行結(jié)果:

  1. 頻繁項(xiàng)集: {  
  2. 1: {('beer',): 7, ('chips',): 3, ('diapers',): 5},   
  3. 2: {('beer''chips'): 3, ('beer''diapers'): 5, ('chips''diapers'): 2},   
  4. 3: {('beer''chips''diapers'): 2}  
  5. }  
  6.   
  7. 關(guān)聯(lián)規(guī)則: [  
  8. {chips} -> {beer},   
  9. {diapers} -> {beer},   
  10. {beer} -> {diapers},   
  11. {chips} -> {diapers},   
  12. {chips, diapers} -> {beer},   
  13. {beer, chips} -> {diapers},   
  14. {chips} -> {beer, diapers}  
  15. ]  

從結(jié)果中我們能看到購(gòu)物組合中:

  • 商品個(gè)數(shù)為 1 的頻繁項(xiàng)集有 3 種,分別為 beer(啤酒)、chips(薯?xiàng)l)、diapers(尿布) 等;
  • 商品個(gè)數(shù)為 2 的頻繁項(xiàng)集有 3 種,包括{beer(啤酒), chips(薯?xiàng)l)},{beer(啤酒), diapers(尿布)},{chips(薯?xiàng)l), diapers(尿布)}等;
  • 其中關(guān)聯(lián)規(guī)則有 7 種,包括了購(gòu)買 chips(薯?xiàng)l) 的人也會(huì)購(gòu)買 beer(啤酒),購(gòu)買 diapers(尿布)的同時(shí)也會(huì) beer(啤酒) 等。

總結(jié)

通過(guò) SQL 完成數(shù)據(jù)分析、機(jī)器學(xué)習(xí)還是推薦使用到 Python,因?yàn)檫@是 Python 所擅長(zhǎng)的。通過(guò)今天的例子我們應(yīng)該能看到采用 SQL 作為數(shù)據(jù)查詢和分析的入口是一種數(shù)據(jù)全棧的思路,對(duì)于數(shù)據(jù)開發(fā)人員來(lái)說(shuō)降低了數(shù)據(jù)分析的技術(shù)門檻。相信在當(dāng)今的 DT 時(shí)代,我們的業(yè)務(wù)增長(zhǎng)會(huì)越來(lái)越依靠于 SQL 引擎 + AI 引擎。

 

責(zé)任編輯:華軒 來(lái)源: 今日頭條
相關(guān)推薦

2010-07-22 17:25:23

2021-10-22 06:53:45

脫敏處理數(shù)據(jù)

2022-08-02 09:32:47

pandas移動(dòng)計(jì)算

2023-10-10 09:13:15

Python數(shù)據(jù)的操作轉(zhuǎn)換

2010-11-12 14:16:21

SQL游標(biāo)

2024-11-26 08:00:00

SQLPandasPandaSQL

2020-07-08 15:10:11

Python數(shù)據(jù)分析代碼

2024-01-29 18:06:39

SQL數(shù)據(jù)格式

2024-07-26 21:36:43

2018-04-25 13:32:31

數(shù)據(jù)保護(hù)GDPRCommvault

2009-05-13 09:39:00

數(shù)據(jù)中心網(wǎng)絡(luò)設(shè)備管理

2017-09-26 19:02:09

PythonInstagram數(shù)據(jù)分析

2009-09-28 09:47:55

Hibernate數(shù)據(jù)

2021-12-28 11:23:36

SQLServerExcel數(shù)據(jù)分析

2018-07-04 06:49:32

數(shù)據(jù)中心遷移服務(wù)器

2023-07-27 08:16:51

數(shù)據(jù)訪問(wèn)層項(xiàng)目

2022-06-09 11:47:21

工具數(shù)據(jù)儀連接器

2017-05-08 15:47:06

2016-12-07 14:45:25

KNIME情感分析數(shù)據(jù)分析

2022-04-02 06:10:02

勒索軟件PSRansom安全工具
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

男女啪啪999亚洲精品| 美女毛片在线观看| 性欧美freehd18| 国产精品的网站| 成人欧美一区二区三区视频xxx| 国产一级特黄a高潮片| 免费一区二区| 国产精品欧美激情在线播放| 久久色在线播放| 亚洲精品乱码久久久久久9色| 精品丝袜在线| 中文子幕无线码一区tr| 国产传媒一区| 依依成人在线视频| 内衣办公室在线| 国产一区二区三区蝌蚪| 91av在线精品| 日韩精品一区二区亚洲av性色| 青草久久视频| 日韩午夜三级在线| 天天操天天爽天天射| 1区2区3区在线| 中文字幕一区二区不卡| 欧美一区三区二区在线观看| www.亚洲天堂.com| 麻豆成人av在线| 69国产精品成人在线播放| 国产精品三区在线观看| 国产精品美女久久久久久不卡| 欧美va在线播放| 激情五月婷婷基地| 欧美日韩精品免费观看视欧美高清免费大片 | 久久久五月婷婷| 成人做爰66片免费看网站| 国产一区二区小视频| 日韩高清一区二区| 日韩69视频在线观看| 日本一二三区视频| 亚洲一本视频| 欧美激情一区二区三区高清视频| 免费国产羞羞网站美图| 色综合咪咪久久网| 中文字幕精品av| 天天操天天干天天操天天干| 蜜桃a∨噜噜一区二区三区| 亚洲精品第一页| 国产精品一区二区无码对白| 亚洲视频精选| 精品国产一区二区三区久久久蜜月| 成人性生交视频免费观看| 欧美一级做一级爱a做片性| 欧美在线999| 美女一区二区三区视频| 国产综合色激情| 欧美三级蜜桃2在线观看| 91在线视频观看免费| 亚洲日本网址| 欧美日本一区二区三区四区| 久久综合伊人77777麻豆最新章节| 午夜欧美巨大性欧美巨大| 日本高清免费不卡视频| 日韩网址在线观看| 日韩高清中文字幕一区二区| 在线观看视频一区二区欧美日韩| 男人女人黄一级| 国产精品美女午夜爽爽| 在线播放91灌醉迷j高跟美女| 亚洲综合激情视频| 日韩精品一区二区三区中文| 精品久久久影院| 北岛玲一区二区| 精品视频99| 精品国产一区二区三区在线观看 | 男插女视频久久久| 五月激情综合网| 日本一极黄色片| 国产成人精品一区二区三区免费| 欧美精品久久一区二区三区| 久久黄色一级视频| 午夜精品福利影院| 自拍偷拍亚洲区| 婷婷色中文字幕| 国产视频一区三区| 国产精品一区专区欧美日韩| 亚洲肉体裸体xxxx137| 欧美韩国日本一区| 国产a级片免费看| 成全电影大全在线观看| 欧美日韩精品中文字幕| 国产视频一区二区视频| 91精品福利观看| 精品国产一区二区三区四区四 | 91精品导航| 亚洲区免费影片| 777777国产7777777| 亚洲国产日本| 国产日韩视频在线观看| 日韩在线观看视频一区二区三区| 国产欧美一区二区三区沐欲| 成人国产一区二区三区| 我爱我色成人网| 日韩免费成人网| 国产亚洲精品熟女国产成人| 欧美一区精品| 国产精品网站入口| 天天射,天天干| 亚洲视频在线观看一区| 免费无码av片在线观看| 久久伊人久久| 亚洲小视频在线观看| 久久亚洲成人av| 日本不卡视频在线| 国产欧美欧洲| 日本在线观看www| 色哟哟一区二区三区| 亚洲av午夜精品一区二区三区| 日韩专区精品| 日本老师69xxx| 欧美特级特黄aaaaaa在线看| 亚洲色图在线看| 美女网站免费观看视频| 久久久久高潮毛片免费全部播放| 久久成人这里只有精品| 中文字幕观看在线| 久久久精品影视| 欧美午夜小视频| 成人av激情人伦小说| 成年人精品视频| 一区二区三区免费在线| 久久久久久久久一| 午夜肉伦伦影院| 日韩美脚连裤袜丝袜在线| 高清欧美性猛交xxxx黑人猛交| 国产黄色片免费观看| 国产精品麻豆99久久久久久| 国产福利一区视频| 欧美猛男男男激情videos| 69精品小视频| 亚洲欧美日本在线观看| 精品国产1区2区| 中文字幕第3页| 亚洲午夜精品久久久久久app| 亚洲bt欧美bt日本bt| 大地资源网3页在线观看| 欧美日韩国产a| 成人三级视频在线观看| 精油按摩中文字幕久久| 亚洲一区美女| 亚洲伊人精品酒店| 久久偷看各类女兵18女厕嘘嘘| 国产一区二区视频免费观看| 亚洲日本欧美天堂| 久久精品一二三四| 欧美精品福利| 国产精品免费观看高清| 99色在线观看| 亚洲黄色www网站| 日韩精品1区2区| 国产欧美一区二区精品性色| 美女一区二区三区视频| 外国成人激情视频| 北条麻妃高清一区| 久热在线观看视频| 亚洲欧美第一页| 尤物视频免费观看| ...中文天堂在线一区| 日韩av片免费观看| 激情文学一区| 欧美日韩一区在线观看视频| 国产第一亚洲| 色与欲影视天天看综合网| 免费看日韩av| 欧美亚洲综合色| 国产精品视频一区二区在线观看| 国产乱人伦精品一区二区在线观看 | 欧美日韩综合视频| 国产探花视频在线播放| 国产一区二区精品久久91| 国产精品videossex国产高清| 台湾色综合娱乐中文网| 国产精品免费福利| 日韩欧美一起| 亚洲天堂第二页| 91免费视频黄| 日韩免费电影| 久久人人爽人人爽爽久久| 午夜老司机福利| 欧美日韩在线视频观看| 国产主播av在线| 国产精品18久久久久久久网站| 免费看日本毛片| 欧美aaaa视频| 精品一区二区三区日本| 福利视频亚洲| 69av成年福利视频| 好了av在线| 亚洲日韩中文字幕| www.成人精品| 欧美综合欧美视频| 国产在线免费视频| 国产精品嫩草久久久久| 91成人在线观看喷潮蘑菇| 丝袜美腿成人在线| 大胆欧美熟妇xx| 不卡av一区二区| 久久综合精品一区| 亚洲精品影片| 成人a在线视频| 综合久久2023| 欧美激情视频在线观看| av小片在线| 亚洲精品一区中文| 亚洲h视频在线观看| 欧美自拍丝袜亚洲| 成人精品免费在线观看| 亚洲免费av在线| 免费黄色在线网址| 91老司机福利 在线| 免费人成视频在线播放| 蜜桃视频免费观看一区| 黄色动漫网站入口| 黄色亚洲免费| 三级在线免费观看| 国产精品国产三级国产在线观看| 蜜桃传媒视频第一区入口在线看| www.亚洲一二| 91视频婷婷| 亚洲a成人v| 国产精品三级美女白浆呻吟 | 国产精品中文字幕在线观看| 综合另类专区| 日韩av第一页| 亚洲国产福利| 欧美一级电影免费在线观看| av手机在线观看| 久久免费国产视频| 超碰97国产精品人人cao| 欧美成人黄色小视频| 日本在线视频站| www.久久久久| 日本三级视频在线观看| 久久精品国产一区二区三区| 亚洲精品承认| www.久久色.com| 自拍视频在线网| 日韩中文在线不卡| 黄色网在线看| 久久天天躁夜夜躁狠狠躁2022| 黄色网页网址在线免费| 免费不卡在线观看av| 国产网站在线免费观看| 久久资源免费视频| h片在线播放| 欧美黄色三级网站| 2020av在线| 欧美在线不卡区| 亚洲第一二三四区| 国产精品久久久久久久久久三级 | 国产第一页精品| 国产精品免费视频网站| 久久嫩草捆绑紧缚| 亚洲黄一区二区三区| 国产污视频在线看| 色呦呦网站一区| 中文字幕精品一区二区精| 制服丝袜亚洲网站| 天堂网在线中文| 亚洲男子天堂网| 欧美午夜电影一区二区三区| 欧美人与性动交a欧美精品| yellow在线观看网址| 日韩av免费在线观看| 国产a亚洲精品| 操一操视频一区| 香蕉久久99| 一区二区三区四区视频在线| 午夜精品av| 2022亚洲天堂| 久88久久88久久久| 亚洲最大免费视频| 国产精品成人免费在线| 九九在线观看视频| 色天使久久综合网天天| 国产理论片在线观看| 亚洲成人av在线播放| 国产精品99999| 久久69精品久久久久久久电影好| 色在线免费观看| 91手机视频在线观看| 精品三级av| 一区二区精品免费视频| 亚洲激情不卡| 欧美一级xxxx| 99re这里只有精品视频首页| 伊人久久久久久久久久久久久久| 欧美日韩国产影院| 国产美女明星三级做爰| 国产婷婷成人久久av免费高清 | 中文字幕一区久久| 99精品黄色片免费大全| 超碰手机在线观看| 欧美亚洲动漫制服丝袜| 四季av日韩精品一区| 久久精品视频亚洲| 暖暖成人免费视频| 国产精选一区二区| 婷婷综合久久| 国产理论在线播放| 91在线一区二区三区| 强乱中文字幕av一区乱码| 91国偷自产一区二区三区观看| 内射后入在线观看一区| 久久高清视频免费| 国内自拍亚洲| 日本一区免费观看| 99av国产精品欲麻豆| 波多野结衣中文字幕在线播放| 日本一区二区三区在线不卡 | www.综合网.com| 成人黄色激情网| 成人3d精品动漫精品一二三| 久久国产乱子伦免费精品| 成人aa视频在线观看| 青青草精品在线视频| 欧美丰满一区二区免费视频| 国产www.大片在线| 日韩av免费一区| 亚洲综合福利| 九九九九免费视频| 99久久精品国产一区| 国产精品6666| 精品国产乱码久久久久久免费 | 日韩欧美在线一区| 午夜视频在线免费播放| 国产69精品99久久久久久宅男| 午夜久久av| 黄网站色视频免费观看| 国产精品69久久久久水密桃 | 色素色在线综合| 精品视频三区| 国产精品成人国产乱一区| 国产a久久精品一区二区三区 | 成人av午夜电影| 久久久久久久久久综合| 精品国产电影一区二区| 好看的中文字幕在线播放| 超碰在线观看97| 99精品国产在热久久婷婷| 一级国产黄色片| 色婷婷久久久久swag精品| 国产区视频在线| 国产日韩在线看片| 亚洲国产一成人久久精品| 国产精品熟女一区二区不卡| 亚洲一区二区四区蜜桃| 人妻丰满熟妇av无码区hd| 91精品国产电影| 精品国产精品| 狠狠干狠狠操视频| 亚洲人妖av一区二区| www.久久色| 韩国精品久久久999| 九九视频精品全部免费播放| 欧美特级aaa| 亚洲精品v日韩精品| 天堂网在线中文| 国产精品爽爽ⅴa在线观看| 中文字幕一区二区精品区| 中文字幕人妻一区二区三区| 欧美体内谢she精2性欧美| 成年女人的天堂在线| 成人做爰www免费看视频网站| 欧美三区美女| 91成年人网站| 欧美一级艳片视频免费观看| а√天堂资源官网在线资源| 日韩av一区二区三区在线| 国内精品在线播放| 西西44rtwww国产精品| 色悠悠久久88| 精品视频在线你懂得| 国产嫩草在线观看| 亚洲图片自拍偷拍| 91精彩视频在线观看| 成人欧美一区二区三区视频xxx| 欧美专区在线| 91aaa在线观看| 亚洲人成在线观| 亚洲精品黑牛一区二区三区| 岳毛多又紧做起爽| 亚洲男女一区二区三区| 天堂√在线中文官网在线| 91精品久久久久久久| 亚洲欧美日本日韩| 欧美成人三级视频| 国产亚洲综合久久| 国产精品调教视频| 久久久久久久久久久久久久久国产 | 国产.欧美.日韩| 中文字幕你懂的|