成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳解SQL中的機器學習

人工智能 機器學習
如此多的現(xiàn)代數(shù)據(jù)分析都建立在ML技術的基礎之上,并且在可預見的將來將繼續(xù)這樣做。但是,并非所有人都能從這些巨大的進步中受益,因為使用ML技術主要涉及使用Python,開發(fā)代碼和理解許多新技術。

有時很難相信ML之前的世界已經(jīng)存在。如此多的現(xiàn)代數(shù)據(jù)分析都建立在ML技術的基礎之上,并且在可預見的將來將繼續(xù)這樣做。但是,并非所有人都能從這些巨大的進步中受益,因為使用ML技術主要涉及使用Python,開發(fā)代碼和理解許多新技術。尤其是當大數(shù)據(jù)和分布式系統(tǒng)進入游戲時,事情變得一團糟。

[[380168]]

這是SQL查詢引擎試圖解決的問題。它們使使用簡單但功能強大的SQL命令來使用復雜的分布式系統(tǒng)世界成為可能。dask-sql是一個新的SQL查詢引擎(免責聲明:我是作者),建立在僅python的Dask分布式庫之上。這個新庫可讓您將Python與SQL和分布式可擴展計算結合起來!(在我的其他一篇文章中了解更多有關它的信息)。

dask-sql的最新版本0.3.0具有對機器學習的實驗性支持,因此今天我們將了解如何使用它。當然,我們將為此使用著名的Iris數(shù)據(jù)集-數(shù)據(jù)科學的世界。即使這個特定的數(shù)據(jù)樣本很小,只需將更多的計算節(jié)點添加到群集中,本文中顯示的所有內(nèi)容都可以輕松擴展到大量數(shù)據(jù)。

旁注:帶有dask-sql的ML仍處于試驗階段:-)可以隨意嘗試,但請謹慎使用。

先決條件和準備

在本文中,我將假設您(或您的數(shù)據(jù)工程師)已經(jīng)設置并運行了dask-sql。有關更多信息,請參考文檔或此博客文章。我還將假設您通過其SQL Server接口連接dask-sql,例如通過諸如Apache Hue之類的BI工具,該工具甚至提供了最新版本對dask-sql的本機支持。

如果您正在使用dask-sql的Python接口,則仍然可以繼續(xù)。只需使用以下單元格初始化Jupyter筆記本

  1. from IPython.core.magic import register_line_cell_magic 
  2. from dask_sql import Context 
  3. # Create a context to store the tables and models 
  4. c = Context() 
  5. # Small helper function to make our life easier 
  6. @register_line_cell_magic 
  7. def sql(line, cell=None): 
  8.     if cell is None: 
  9.         cell = line 
  10.         line = None 
  11.      
  12.     if not line: 
  13.         line = {} 
  14.     return c.sql(cell, return_futures=False, **line) 

在以下代碼示例中,在每個SQL命令前加上%% sql,例如

  1. %%sql 
  2. SELECT 1 + 1 

加載和準備數(shù)據(jù)

在這些事情都解決了之后,讓我們開始導入數(shù)據(jù)。由于dask-sql利用大型的Python和Dask生態(tài)系統(tǒng),您可以從許多不同的位置讀取許多不同格式的數(shù)據(jù)樣本。在此示例中,我們將以相當標準的CSV格式從Internet提取數(shù)據(jù):

  1. CREATE OR REPLACE TABLE iris WITH ( 
  2.     location = 'https://datahub.io/machine-learning/iris/r/iris.csv'
  3.     persist = True 

數(shù)據(jù)集被加載并存儲為名為“ iris”的表。persist = True使dask-sql將數(shù)據(jù)緩存在內(nèi)存中。

現(xiàn)在,檢查數(shù)據(jù)是否正確加載

DESCRIBE iris

如您所見,數(shù)據(jù)類型是自動分配的。我們可以使用以下標準SQL命令顯示數(shù)據(jù)的前十行:

  1. SELECT * FROM iris LIMIT 10 

鳶尾花數(shù)據(jù)集的簡要介紹:如上面的輸出所示,數(shù)據(jù)集描述了鳶尾花及其種類的測量結果。它是機器學習中的標準數(shù)據(jù)集之一,可以用作許多類型的ML方法的示例。在此示例中,我們將應用無監(jiān)督的聚類算法。

在開始培訓之前,讓我們首先在每個ML管道中執(zhí)行另一個重要步驟:特征提取。由于我不是生物學家,因此在此僅以一個非常簡單且幼稚的新功能為例:將萼片長度乘以萼片寬度。還可以使用SQL語句和函數(shù)生成更復雜的功能。如果這還不夠,dask-sql允許注冊用Python編寫的用戶定義函數(shù)(UDF)。

  1. SELECT  
  2.     *,  
  3.     sepallength * petallength AS new_feature  
  4. FROM iris 
  5. LIMIT 10 

為了讓我們的生活更輕松,讓我們?yōu)樵撛鰪娦捅硪胍粋€別名

  1. CREATE OR REPLACE TABLE transformed_data AS ( 
  2.     SELECT  
  3.         *,  
  4.         sepallength * petallength AS new_feature 
  5.     FROM iris 

我們現(xiàn)在準備應用機器學習!

訓練機器學習模型

機器學習模型的種類繁多,從簡單的模型(如線性回歸)到強大的Boosted Decision Trees,再到最先進的研究模型(如Transformers)。其中許多是在著名的scikit-learn Python軟件包中實現(xiàn)的,因此(在許多其他庫中)可在dask-sql中使用。

在此示例中,我們應用了k-Means聚類算法。簡而言之,它將數(shù)據(jù)集分組為具有相似特征的行簇。如果一切順利,我們希望它可以將相同物種的花朵聚在一起-而無需我們告訴算法。讓我們看看該算法的性能如何(破壞者:不是很好)。如果您想了解有關與dask-sql兼容的模型及其設置的更多信息,建議您閱讀一下文檔。

因此,讓我們將聚類算法應用于數(shù)據(jù)!

  1. CREATE OR REPLACE MODEL clustering WITH ( 
  2.     model_class = 'sklearn.cluster.KMeans'
  3.     wrap_predict = True
  4.     n_clusters = 3 
  5. ) AS ( 
  6.     SELECT sepallength, sepalwidth, petallength, petalwidth, new_feature 
  7.     FROM transformed_data 

如您所見,我們使用了一個新的SQL構造CREATE MODEL進行訓練,它獲得一些參數(shù)來指定要訓練的模型。在我們的例子中,我們從scikit-learn中選擇k-Means算法,并將我們期望的組或簇數(shù)設置為三個(因為我們有三個種類)。scikit-learn軟件包中的算法在中等大小的數(shù)據(jù)上可以很好地工作,如果您需要超出此范圍,請查看dask-ml。

培訓應立即完成(因為總數(shù)據(jù)集很小),因此我們可以繼續(xù)檢查預測。

檢查性能

  1. SELECT * FROM PREDICT ( 
  2.     MODEL clustering, 
  3.     SELECT * FROM transformed_data 
  4.     LIMIT 10 

該SQL語句將訓練有素的模型應用于給定的數(shù)據(jù),并向其中添加帶有模型的預測目標的新列“目標”。從前十行來看,它看起來不錯(所有“ setosa”都有相同的預測目標)。因此,我們再次引入別名以進行更多計算

  1. CREATE OR REPLACE TABLE iris_results AS ( 
  2.     SELECT class AS label, target AS predicted FROM PREDICT ( 
  3.         MODEL clustering, 
  4.         SELECT * FROM transformed_data 
  5.     ) 

為了簡短起見,我們只快速瀏覽一下結果,并檢查物種和預測簇的分布。

  1. SELECT  
  2.     label, predicted, COUNT(*) AS numbers 
  3. FROM iris_results 
  4. GROUP BY label, predicted 

一點都不完美,但是幸運的是,這不是關于ML的文章,所以我將跳過優(yōu)化步驟:-)。您的BI工具可能能夠自動繪制這些數(shù)字,并且作為python用戶,您可以使用

  1. df = c.sql(""" 
  2. SELECT  
  3.     label, predicted, COUNT(*) AS numbers 
  4. FROM iris_results 
  5. GROUP BY label, predicted 
  6. """, return_futures=False
  7. dfdf = df.set_index(["label", "predicted"]) 
  8. df.numbers.unstack(0).plot.bar(ax=plt.gca()) 

概要

感謝您關注這篇文章直到最后!我們已經(jīng)介紹了相當多的材料,所以這里有個簡短的回顧:

  • SQL查詢引擎很酷,因為您可以使用它們使用具有簡單SQL語法(以及很多魔術)的復雜分布式系統(tǒng)來查詢復雜數(shù)據(jù)。
  • dask-sql就是其中之一,它與Python生態(tài)系統(tǒng)的交互特別簡單(因為它建立在Dask之上,Dask是可擴展Python應用程序的庫)。
  • 好處之一是可以輕松集成各種Python ML庫,例如scikit-learn包中的k-Means算法,如本博文所示。另一個好處是,一切都可以通過使用SQL來完成!

如果您想了解更多信息,請轉至文檔,然后對數(shù)據(jù)進行SQL處理。

原文鏈接:https://towardsdatascience.com/machine-learning-in-sql-it-actually-works-56e8d91fc273

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2020-10-13 14:38:50

機器學習數(shù)據(jù)

2010-08-05 09:07:24

2021-04-09 10:37:40

SQL Server數(shù)據(jù)庫排名

2024-10-17 16:08:36

SQL 查詢SQL

2010-09-07 11:53:00

SQL語句

2021-04-25 09:42:40

SQL遞歸SQL Server

2010-09-06 14:58:42

SQL函數(shù)

2010-09-09 11:12:49

SQL函數(shù)DATALENGTH

2014-08-22 10:06:46

機器學習

2017-03-22 12:25:29

機器學習梯度下降法

2017-05-09 08:18:11

機器學習損失函數(shù)正則化

2017-10-20 23:41:51

區(qū)塊鏈機器學習神經(jīng)網(wǎng)絡

2010-09-08 17:15:45

SQL循環(huán)結構

2022-03-28 09:00:00

SQL數(shù)據(jù)庫機器學習

2018-08-05 06:48:34

2024-08-26 14:23:56

2010-09-08 14:03:41

SQL函數(shù)CONVERT

2021-12-30 12:05:38

對抗性攻擊機器學習

2021-11-30 22:51:36

機器學習大數(shù)據(jù)技術

2022-09-06 15:00:09

機器學習集成數(shù)據(jù)集
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美久久一区 | 国产精品日韩一区 | 青青草在线视频免费观看 | 仙人掌旅馆在线观看 | 亚洲国产aⅴ精品一区二区 免费观看av | 日韩a视频| 特黄一级| 久在线 | 国产欧美二区 | 久久精品女人天堂av | 日韩欧美一级精品久久 | 91视频一区 | 草草视频在线观看 | 美女精品一区 | 91精品久久久久久久 | 亚洲成人精品 | 欧美国产精品一区二区三区 | 日韩在线视频一区 | 欧美一级在线 | 国产在线精品一区二区三区 | 久久r免费视频 | 亚洲精品美女在线观看 | 国产一区二区三区久久久久久久久 | 亚洲成人三区 | 另类在线 | 日韩一区二 | www.99re | 亚洲久在线 | 午夜在线免费观看视频 | 人人擦人人 | 国产精品视频中文字幕 | 欧美成人激情 | 日日操操| 久久久www成人免费精品 | 亚洲国产精品一区二区三区 | www.性色| 91最新视频| 国产高清性xxxxxxxx | 伊人久久成人 | 成人久久久久 | 伊人久久成人 |