自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

用Madlib學(xué)習(xí)『機器學(xué)習(xí)』之KNN

原創(chuàng)
人工智能 機器學(xué)習(xí)
本文介紹用Madlib學(xué)習(xí)『機器學(xué)習(xí)』之KNN。機器學(xué)習(xí)(ML)分為:監(jiān)督學(xué)習(xí),無監(jiān)督學(xué)習(xí),半監(jiān)督學(xué)習(xí)等。

前言

機器學(xué)習(xí)(ML)分為:監(jiān)督學(xué)習(xí),無監(jiān)督學(xué)習(xí),半監(jiān)督學(xué)習(xí)等。

1.1 監(jiān)督學(xué)習(xí)(supervised learning)

監(jiān)督學(xué)習(xí)是訓(xùn)練神經(jīng)網(wǎng)絡(luò)和決策樹的常見技術(shù),高度依賴事先確定的分類系統(tǒng)給出的信息,對于神經(jīng)網(wǎng)絡(luò),分類系統(tǒng)利用信息判斷網(wǎng)絡(luò)的錯誤,然后不斷調(diào)整網(wǎng)絡(luò)參數(shù)。對于決策樹,分類系統(tǒng)用它來判斷哪些屬性提供了最多的信息。

從給定的訓(xùn)練數(shù)據(jù)集中學(xué)習(xí)出一個函數(shù),當(dāng)新的數(shù)據(jù)到來時,可以根據(jù)這個函數(shù)預(yù)測結(jié)果。

監(jiān)督學(xué)習(xí)的訓(xùn)練集要求包括輸入輸出,也可以說是特征和目標,訓(xùn)練集中的目標是由人標注的。

常見的有監(jiān)督學(xué)習(xí)算法:回歸分析和統(tǒng)計分類,最典型的算法是KNN和SVM。

有監(jiān)督學(xué)習(xí)最常見的就是:regression & classification

Regression:Y是實數(shù)向量,回歸問題,就是擬合(x,y)的一條曲線,使得價值函數(shù)(cost function) L最小。

Classification:Y是一個有窮數(shù)(finite number),可以看做類標號,分類問題首先要給定有l(wèi)abel的數(shù)據(jù)訓(xùn)練分類器,故屬于有監(jiān)督學(xué)習(xí)過程,分類過程中cost function l(X,Y)是X屬于類Y的概率的負對數(shù)。

其中fi(X)=P(Y=i/X)。

有監(jiān)督學(xué)習(xí)方法必須要有訓(xùn)練集與測試樣本,在訓(xùn)練集中找規(guī)律,而對測試樣本使用這種規(guī)律。

有監(jiān)督學(xué)習(xí)的方法就是識別事物,識別的結(jié)果表現(xiàn)在給待識別數(shù)據(jù)加上了標簽,因此訓(xùn)練樣本集必須由帶標簽的樣本組成。

1.2 名詞KNN

k-Nearest Neighbors

在一個給定的數(shù)據(jù)點上找出k個最近的數(shù)據(jù)點,在分類的情況下輸出輸出類的多數(shù)投票值,以及在回歸情況下目標值的平均值。

擼袖子

2.1 新新相映

軟件是基于***的postgresql 10.0加上***的madlib 1.12。

為了操作方便,我這里使用基于docker的ubuntu 16.04安裝madlib,這樣以后就可以拿著這個鏡像到處嗨了,以下操作就是在MAC里面進行的。

2.2 查看madlib版本

  1. #select madlib.version();

2.3 導(dǎo)入訓(xùn)練數(shù)據(jù)

 

  1. DROP TABLE IF EXISTS knn_train_data; 
  2. CREATE TABLE knn_train_data ( 
  3.                     id integer,  
  4.                     data integer[],  
  5.                     label float 
  6.                     ); 

 

 

  1. INSERT INTO knn_train_data VALUES 
  2. (1, '{1,1}', 1.0), 
  3. (2, '{2,2}', 1.0), 
  4. (3, '{3,3}', 1.0), 
  5. (4, '{4,4}', 1.0), 
  6. (5, '{4,5}', 1.0), 
  7. (6, '{20,50}', 0.0), 
  8. (7, '{10,31}', 0.0), 
  9. (8, '{81,13}', 0.0), 
  10. (9, '{1,111}', 0.0);
  1. SELECT * from knn_train_data ORDER BY id; 

2.4 導(dǎo)入測試數(shù)據(jù)

 

  1. DROP TABLE IF EXISTS knn_test_data; 
  2. CREATE TABLE knn_test_data ( 
  3.                     id integer,  
  4.                     data integer[] 
  5.                     ); 

 

 

  1. INSERT INTO knn_test_data VALUES 
  2. (1'{2,1}'), 
  3. (2'{2,6}'), 
  4. (3'{15,40}'), 
  5. (4'{12,1}'), 
  6. (5'{2,90}'), 
  7. (6'{50,45}');
  1. SELECT * from knn_test_data ORDER BY id; 

2.5 分類訓(xùn)練

 

  1. SELECT * FROM madlib.knn( 
  2.                 'knn_train_data',      -- 訓(xùn)練數(shù)據(jù)表名 
  3.                 'data',                -- 訓(xùn)練數(shù)據(jù)所在列 
  4.                 'label',               -- 訓(xùn)練標簽 
  5.                 'knn_test_data',       -- 測試數(shù)據(jù)表名 
  6.                 'data',                -- 測試數(shù)據(jù)所在列 
  7.                 'id',                  -- 測試數(shù)據(jù)列名id 
  8.                 'madlib_knn_result_classification',  -- 結(jié)果輸出 
  9.                 'c',                   -- 分類 
  10.                  3                     -- 最近相鄰數(shù) 
  11.                 );               

 

2.6 查看分類輸出結(jié)果

  1. SELECT * from madlib_knn_result_classification ORDER BY id; 

圖形化示例:

2.7 進行回歸

 

  1. DROP TABLE IF EXISTS madlib_knn_result_regression; 
  2. SELECT * FROM madlib.knn( 
  3.                 'knn_train_data',      -- 訓(xùn)練數(shù)據(jù)表名 
  4.                 'data',                -- 訓(xùn)練數(shù)據(jù)所在列 
  5.                 'label',               -- 訓(xùn)練標簽 
  6.                 'knn_test_data',       -- 測試數(shù)據(jù)表名 
  7.                 'data',                -- 測試數(shù)據(jù)所在列 
  8.                 'id',                  -- 測試數(shù)據(jù)列名id 
  9.                 'madlib_knn_result_regression',  --結(jié)果輸出 
  10.                 'r',                   -- 回歸 
  11.                  3                     -- 最近相鄰數(shù) 
  12.                 ); 

 

2.8 查看回歸輸出結(jié)果

 

  1. SELECT * from madlib_knn_result_regression ORDER BY id; 

圖形化示例:

小結(jié)

postgresql提供了對結(jié)構(gòu)化數(shù)據(jù)的存儲和加工的便捷,madlib提供了ML算法的支持,強強聯(lián)手,相得益彰。

【作者簡介】孫輝,DataHunter技術(shù)總監(jiān)。曾在索尼等知名公司任職,先后擔(dān)任過系統(tǒng)架構(gòu)、技術(shù)總監(jiān)等職位,負責(zé)過尚郵,索愛中文輸入法,快牙,mPush(魔推)等知名產(chǎn)品研發(fā)。擁有15年深厚IT技術(shù)行業(yè)經(jīng)驗,熟悉掌控產(chǎn)品研發(fā)各個環(huán)節(jié),有豐富的后端、前端、運維、DBA、測試經(jīng)驗。

【51CTO原創(chuàng)稿件,合作站點轉(zhuǎn)載請注明原文作者和出處為51CTO.com】

責(zé)任編輯:王雪燕 來源: 51CTO
相關(guān)推薦

2020-11-06 09:00:00

機器學(xué)習(xí)集成學(xué)習(xí)人工智能

2021-07-29 13:06:29

Python機器學(xué)習(xí)編程語言

2018-03-15 11:50:53

機器學(xué)習(xí)入門Tensorflow

2022-08-09 13:44:37

機器學(xué)習(xí)PySpark M數(shù)據(jù)分析

2017-09-01 13:19:21

機器學(xué)習(xí)Logostic回歸

2024-06-13 09:12:38

2017-07-25 12:09:10

機器學(xué)習(xí)預(yù)測性維護模型

2022-09-06 08:00:00

機器學(xué)習(xí)金融數(shù)據(jù)科學(xué)

2021-08-23 11:15:20

Python機器學(xué)習(xí)bilibili

2021-08-21 14:30:58

機器學(xué)習(xí)bilibili股價

2023-03-30 11:38:56

機器學(xué)習(xí)邏輯規(guī)則數(shù)量

2021-04-21 10:47:48

機器學(xué)習(xí)邏輯回歸

2017-04-11 12:05:07

機器學(xué)習(xí)python矩陣運算

2017-10-09 12:55:29

機器學(xué)習(xí)KaggleStacking

2022-04-19 09:00:00

機器學(xué)習(xí)數(shù)據(jù)質(zhì)量人工智能

2021-04-12 10:46:15

人工智能機器學(xué)習(xí)

2021-03-15 11:35:28

人工智能機器學(xué)習(xí)

2015-04-14 10:40:31

云計算機器學(xué)習(xí)

2020-12-16 15:56:26

機器學(xué)習(xí)人工智能Python

2018-11-07 09:00:00

機器學(xué)習(xí)模型Amazon Sage
點贊
收藏

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