精品欧美一区二区三区在线观看 _久久久久国色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)

91最新在线观看| 国产精品久久久久一区| 一区二区三区中文字幕精品精品 | 亚洲精品永久免费| 亚洲草草视频| 日产欧产va高清| 精品精品视频| 国产精品美女久久久久久久久| 成人性生交大片免费看视频直播 | 亚洲免费观看高清完整版在线观| 国产精品久久看| 9a蜜桃久久久久久免费| 日韩av手机在线免费观看| 91av亚洲| 2021国产精品久久精品| 久久免费视频在线观看| 少妇欧美激情一区二区三区| 日本在线免费网| 欧美18xxxx| 一区二区不卡在线播放| 成人乱色短篇合集| 中文字幕在线字幕中文| 91麻豆精品激情在线观看最新| 中文字幕一区在线| 国产精品久久久av| 少妇无套高潮一二三区| 亚洲欧洲高清| 久久影院电视剧免费观看| 国产欧美一区二区三区四区| 亚洲女人毛茸茸高潮| 国产一区影院| 亚洲免费观看高清| av观看久久| 中文字幕无码乱码人妻日韩精品| 日韩精品免费| 69堂国产成人免费视频| 久久久无码中文字幕久...| 国产精品久久久午夜夜伦鲁鲁| 日韩一区二区在线免费| 亚洲精品视频播放| 国产精品麻豆入口| 欧美电影h版| 国产精品午夜在线观看| 91夜夜未满十八勿入爽爽影院| 国产探花在线视频| av成人资源网| 欧美一区二区三区在| 91午夜在线观看| 日漫免费在线观看网站| 日韩电影在线观看一区| 色偷偷88888欧美精品久久久| 91福利免费观看| 在线观看操人| 91视频xxxx| 国产精品久久久久999| 特黄视频免费看| 日韩一区二区三区免费播放| 国产一区二区三区精品久久久| 欧洲在线免费视频| 国产夫妻在线| 中文字幕一区二区三区四区不卡| 日产中文字幕在线精品一区| 国产又粗又长视频| 久久精品国产久精国产| 欧美激情一二三| 精品人伦一区二区三电影 | 色综合久久中文字幕综合网| 日韩影院一区| eeuss影院在线播放| 国产福利91精品| 国产成一区二区| 顶臀精品视频www| 亚洲人成亚洲精品| 亚洲日韩第一页| 亚洲黄色小说在线观看| 亚洲承认视频| 欧美午夜影院一区| 国产精品999视频| 免费成人黄色| 久久女同互慰一区二区三区| 欧美日韩在线一二三| 国产成人免费看一级大黄| 一区二区91| 另类图片亚洲另类| 成人免费毛片糖心| 欧美偷窥清纯综合图区| 亚洲第一综合天堂另类专| 最新天堂在线视频| 亚洲第一二三四区| 欧美久久免费观看| 手机看片福利日韩| 精品国产亚洲一区二区三区在线| 欧美mv日韩mv国产网站| 色噜噜狠狠一区二区| 忘忧草在线影院两性视频| 色系网站成人免费| 午夜影院免费版| 日韩黄色三级在线观看| 欧洲在线/亚洲| 欧美成人免费高清视频| av资源在线播放| 一区二区三区成人| 国产裸体舞一区二区三区| av福利导福航大全在线| 在线亚洲免费视频| 4438x全国最大成人| 亚洲国产最新| 欧美成人免费小视频| 激情高潮到大叫狂喷水| 激情综合久久| 欧美风情在线观看| 亚洲av鲁丝一区二区三区| 99精品视频在线观看播放| 国产亚洲视频中文字幕视频| 青青草原在线免费观看| 老**午夜毛片一区二区三区| 日本国产欧美一区二区三区| 日本中文字幕在线免费观看| 蜜桃视频一区二区| 成人精品一区二区三区电影免费| 欧日韩在线视频| 成人黄色a**站在线观看| 不卡视频一区| 日本蜜桃在线观看| 91久久精品一区二区三区| 男人透女人免费视频| 亚洲日本视频在线| 精品福利一区二区三区| 日本黄色录像片| 欧美.www| 91av成人在线| 久久久精品视频网站| 日韩精品午夜视频| 狠狠色噜噜狠狠色综合久| 日中文字幕在线| 亚洲图片欧美色图| 精品人妻一区二区三区四区在线 | 国产精品手机在线播放| 亚洲深夜福利网站| 日韩免费av片| 成人午夜av影视| 免费看污久久久| 91精品专区| 亚洲欧美另类久久久精品| 簧片在线免费看| 亚洲精华一区二区三区| 2020欧美日韩在线视频| 欧美一区免费看| 久久国产精品99久久久久久老狼| 7777奇米亚洲综合久久 | 国内精品伊人久久久久av影院| 91欧美视频网站| 秋霞午夜在线观看| 欧美精品v国产精品v日韩精品| 亚洲ⅴ国产v天堂a无码二区| 欧美一区综合| 亚洲一区二区三区乱码aⅴ蜜桃女| 欧美一级视频免费| 亚洲成a人片综合在线| 精品视频在线观看一区二区| 涩涩视频在线免费看| 欧美视频一二三区| 中文字幕欧美激情极品| 精品在线你懂的| 精品视频在线观看一区二区| 国产精品白丝一区二区三区 | 91在线直播| 欧美三级电影网| 中文字幕人妻一区| 欧美色图在线播放| 91精品国产沙发| 欧美亚洲日本| 欧美性三三影院| 一区二区国产精品精华液| 国产精品影视在线| 欧美下载看逼逼| 亚洲不卡系列| 亚洲国内精品在线| 久久高清内射无套| 国产成a人无v码亚洲福利| 亚洲一区二区三区免费看| 国产无遮挡裸体视频在线观看| 亚洲国产精品电影| 国产日韩在线免费观看| 97久久超碰国产精品| 热久久最新网址| 免费看久久久| 国产精品老女人视频| 青青草娱乐在线| 欧美日韩在线亚洲一区蜜芽| 欧美人妻精品一区二区三区| 久久精品二区亚洲w码| 欧美做受777cos| 米奇777超碰欧美日韩亚洲| 性色av一区二区三区在线观看 | 在线综合+亚洲+欧美中文字幕| 久草免费在线视频观看| 久久精品夜色噜噜亚洲aⅴ| av免费观看大全| 国产精品美女久久久久久不卡| 成人淫片在线看| 中文在线资源| 久久夜色撩人精品| 欧美美乳在线| 色网站国产精品| 糖心vlog免费在线观看 | 久久久久欧美| 18aaaa精品欧美大片h| 亚洲深夜福利在线| 日韩专区第一页| 亚洲国产视频a| 你懂得视频在线观看| 蜜桃免费网站一区二区三区| 国内少妇毛片视频| 欧美日韩一本| 91美女片黄在线观看游戏| 超碰aⅴ人人做人人爽欧美| 色综合久久精品亚洲国产| 国产色综合视频| 亚洲免费在线观看视频| 成都免费高清电影| av电影天堂一区二区在线| 91免费视频网站在线观看| 亚洲国产精品久久久天堂| 亚洲一区二区三区毛片| 日本成人伦理电影| 久久精品99久久久香蕉| 精品国产99久久久久久宅男i| 亚洲国产精品精华液2区45| 人妻丰满熟妇aⅴ无码| 玖玖在线精品| 欧美精品一区免费| 欧洲激情综合| 成人亲热视频网站| 欧美性理论片在线观看片免费| 91干在线观看| 超碰在线视屏| 国内精品国产三级国产在线专| 特级毛片在线| 亚洲男人天堂网站| 亚洲综合精品国产一区二区三区| 亚洲色图19p| 日批在线观看视频| 丁香六月久久综合狠狠色| 亚洲网中文字幕| 久久精品国产亚洲一区二区三区 | 黄色资源网久久资源365| 亚洲黄色a v| 蜜桃精品在线观看| 久久国产激情视频| 激情综合网激情| 欧美激情第四页| 国产福利视频一区二区三区| 又黄又色的网站| av电影在线观看不卡| 精品人妻一区二区三区日产乱码卜| av电影在线观看一区| 黄瓜视频污在线观看| 日本强好片久久久久久aaa| 女女同性女同一区二区三区按摩| 国产精品99久久免费观看| 国产精品视频入口| 国产一区精品福利| 成人国产精品色哟哟| 91精品国产自产观看在线| 欧美在线精品免播放器视频| 亚洲深夜视频| 日本免费一区二区三区视频观看| 二区三区在线观看| 亚洲男人天堂视频| 91caoporn在线| 九色精品免费永久在线| 成人观看网址| 国产精品久久久久免费a∨| 免费成人毛片| 国产麻豆乱码精品一区二区三区| 欧美a一欧美| 视频在线99| 香蕉视频一区二区三区| 97操在线视频| 狼人天天伊人久久| 2022国产精品| 欧美美女在线直播| 神马影院我不卡午夜| 午夜精品亚洲| 国产二区视频在线播放| 久久精品噜噜噜成人av农村| 欧美一区二区三区影院| 26uuu成人网一区二区三区| 美国美女黄色片| 亚洲成人在线免费| 中文字幕人妻色偷偷久久| 日韩欧美国产三级电影视频| 91精品在线视频观看| 欧美性高跟鞋xxxxhd| 日本三级网站在线观看| 色先锋资源久久综合| 国内老熟妇对白hdxxxx| 亚洲丝袜在线视频| 丁香影院在线| 97久久超碰福利国产精品…| 欧美成人精品三级网站| 国产精品美女xx| 欧美大黑bbbbbbbbb在线| 亚洲免费不卡| 国产美女一区| 激情网站五月天| 国产成人综合亚洲网站| 国产性猛交xx乱| 大伊人狠狠躁夜夜躁av一区| 久热这里只有精品6| 偷窥国产亚洲免费视频| 日本在线视频免费| 欧美精选一区二区| 国产香蕉在线| 中文字幕精品国产| 在线观看黄av| 1769国内精品视频在线播放| 国产精品**亚洲精品| 91久久久久久久久久久| 妖精视频一区二区三区| 久久av综合网| 国产一区二区三区高清播放| 深夜福利网站在线观看| 亚洲国产精品t66y| 亚洲 欧美 日韩 在线| 日韩免费高清视频| 日本福利专区在线观看| 国产成人精品免高潮费视频| 欧美电影完整版在线观看| 成人在线免费观看视频网站| 精品一区二区三区在线播放视频 | 狠狠做深爱婷婷综合一区| 欧美啪啪免费视频| 99久久免费精品| 久久久久久蜜桃| 黑人巨大精品欧美一区二区一视频| 国产欧美第一页| 久久精品中文字幕电影| 欧美成人一二区| 亚洲国产精品久久久久久女王| 美女尤物久久精品| 亚洲免费在线播放视频| 国产精品久久久久久久久免费相片| 婷婷激情五月综合| 日韩一区国产二区欧美三区| 亚洲免费视频网| 一本一本久久a久久精品综合小说| 国产网站在线免费观看| 国模私拍一区二区三区| 国产伦精品一区二区三区在线播放 | 国产aⅴ精品一区二区三区久久| 干日本少妇首页| 久久久久久久免费视频了| 亚洲 日本 欧美 中文幕| 亚洲天堂av网| 青青国产精品| 超碰97免费观看| 亚洲视频碰碰| 久久久久久久片| 福利电影一区二区三区| 久久精品亚洲无码| 欧美日本乱大交xxxxx| 四虎精品成人影院观看地址| www.欧美精品| 中文在线中文资源| 日韩欧美亚洲在线| 精品一区二区在线视频| 国产这里有精品| 亚洲国产欧美精品| 欧美黑人粗大| 亚洲图片在线观看| 国产精品系列在线播放| 日韩av在线播放观看| 亚洲深夜福利网站| 久久久久久久久成人| 18禁免费观看网站| 欧美国产一区在线| 中文字幕一区二区人妻电影| 亚洲欧美在线一区| 小说区图片区亚洲| 香港三级日本三级a视频| 久久中文娱乐网| 一区二区三区精| 久久久爽爽爽美女图片| 精品日产免费二区日产免费二区| 亚洲一级片免费观看| 日韩欧美精品网站| 韩国中文字幕在线| 久久国产精品-国产精品| 久久er99精品| 日本亚洲色大成网站www久久| 亚洲午夜未满十八勿入免费观看全集| www.久久久.com| 欧美黄色一级片视频| 亚洲免费成人av| 黄色软件在线观看| 欧洲s码亚洲m码精品一区| 日韩在线视屏| 国产三级国产精品|