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

小白學(xué)數(shù)據(jù):教你用Python實(shí)現(xiàn)簡(jiǎn)單監(jiān)督學(xué)習(xí)算法

企業(yè)動(dòng)態(tài) 算法
監(jiān)督學(xué)習(xí)作為運(yùn)用最廣泛的機(jī)器學(xué)習(xí)方法,一直以來(lái)都是從數(shù)據(jù)挖掘信息的重要手段。即便是在無(wú)監(jiān)督學(xué)習(xí)興起的近日,監(jiān)督學(xué)習(xí)也依舊是入門(mén)機(jī)器學(xué)習(xí)的鑰匙。

[[220586]]

編譯:文明、笪潔瓊、天培

監(jiān)督學(xué)習(xí)作為運(yùn)用最廣泛的機(jī)器學(xué)習(xí)方法,一直以來(lái)都是從數(shù)據(jù)挖掘信息的重要手段。即便是在無(wú)監(jiān)督學(xué)習(xí)興起的近日,監(jiān)督學(xué)習(xí)也依舊是入門(mén)機(jī)器學(xué)習(xí)的鑰匙。

這篇監(jiān)督學(xué)習(xí)教程適用于剛?cè)腴T(mén)機(jī)器學(xué)習(xí)的小白。

當(dāng)然了,如果你已經(jīng)熟練掌握監(jiān)督學(xué)習(xí),也不妨快速瀏覽這篇教程,檢驗(yàn)一下自己的理解程度。

一、什么是監(jiān)督學(xué)習(xí)?

在監(jiān)督學(xué)習(xí)中,我們首先導(dǎo)入包含有訓(xùn)練屬性和目標(biāo)屬性的數(shù)據(jù)集。監(jiān)督學(xué)習(xí)算法會(huì)從數(shù)據(jù)集中學(xué)習(xí)得出訓(xùn)練樣本和其目標(biāo)變量之間的關(guān)系,然后將學(xué)習(xí)到的關(guān)系對(duì)新樣本(未被標(biāo)記的樣本)進(jìn)行分類。

為了闡明監(jiān)督學(xué)習(xí)的工作原理,我們用根據(jù)學(xué)生學(xué)習(xí)時(shí)間預(yù)測(cè)其考試成績(jī)的例子來(lái)說(shuō)明。

用數(shù)學(xué)表示,即Y = f(X)+ C,其中

  • f表示學(xué)生學(xué)習(xí)時(shí)間和考試成績(jī)之間的關(guān)系
  • X表示輸入(學(xué)習(xí)小時(shí)數(shù))
  • Y表示輸出(考試分?jǐn)?shù))
  • C表示隨機(jī)誤差

監(jiān)督學(xué)習(xí)算法的***目標(biāo)是給出新的輸入X,使得預(yù)測(cè)結(jié)果Y的準(zhǔn)確率***。有很多方法可以實(shí)現(xiàn)有監(jiān)督學(xué)習(xí),我們將探討幾種最常用的方法。

根據(jù)給定的數(shù)據(jù)集,機(jī)器學(xué)習(xí)可以分為兩大類:分類(Classification)和回歸(Regression)。如果給定的數(shù)據(jù)集的輸出值是類別,那么待解決是分類問(wèn)題。如果給定的數(shù)據(jù)集的輸出值是連續(xù)的,那么該問(wèn)題是回歸問(wèn)題。

舉兩個(gè)例子

  • 分類:判斷是貓還是狗。
  • 回歸:房子的售價(jià)是多少?

二、分類

考慮這樣一個(gè)例子,醫(yī)學(xué)研究員想要分析乳腺癌數(shù)據(jù),用于預(yù)測(cè)患者使用三種治療方案中的哪一種。該數(shù)據(jù)分析問(wèn)題就屬于分類問(wèn)題,通過(guò)建立分類模型來(lái)預(yù)測(cè)類別標(biāo)簽,例如“治療方案A”、“治療方案B”或者“治療方案C”。

分類是一個(gè)預(yù)測(cè)類別標(biāo)簽的預(yù)測(cè)問(wèn)題,這些類別標(biāo)簽都是離散和無(wú)序的。分類包含兩個(gè)步驟:學(xué)習(xí)步驟和分類步驟。

1. 分類方法和選擇***方法

一些常見(jiàn)的分類算法:

  • K近鄰
  • 決策樹(shù)
  • 樸素貝葉斯
  • 支持向量機(jī)

在學(xué)習(xí)步驟中,分類模型通過(guò)分析訓(xùn)練集數(shù)據(jù)建立一個(gè)分類器。在分類步驟中,分類器對(duì)給定的數(shù)據(jù)進(jìn)行分類。用于分析的數(shù)據(jù)集(包含數(shù)據(jù)和其對(duì)應(yīng)的標(biāo)簽)被劃分為訓(xùn)練集和測(cè)試集。訓(xùn)練集從分析用的數(shù)據(jù)集中隨機(jī)抽取。剩下的數(shù)據(jù)集構(gòu)成測(cè)試集。測(cè)試集和訓(xùn)練集相互獨(dú)立,即測(cè)試集中的數(shù)據(jù)不會(huì)被構(gòu)建于分類器。

測(cè)試集用于評(píng)價(jià)分類器的預(yù)測(cè)精度。分類器的精度用測(cè)試集中預(yù)測(cè)正確的百分比表示。為了獲得更高的精度,***的方法是測(cè)試多個(gè)不同的算法,同時(shí),對(duì)每個(gè)算法嘗試不同的參數(shù)。可以通過(guò)交互檢驗(yàn)選擇***的算法和參數(shù)。

對(duì)于給定問(wèn)題,在選取算法時(shí),算法的精度、訓(xùn)練時(shí)間、線性、參數(shù)數(shù)目以及特殊情況都要考慮在內(nèi)。

在IRIS數(shù)據(jù)集上實(shí)現(xiàn)sklearn中的KNN,并對(duì)給定的輸入進(jìn)行花卉類型分類。

首先,要應(yīng)用機(jī)器學(xué)習(xí)算法,我們需要了解給定數(shù)據(jù)集的組成。在這個(gè)例子中,我們使用內(nèi)置在sklearn包中的IRIS數(shù)據(jù)集。現(xiàn)在讓我們使用代碼查看IRIS數(shù)據(jù)集。

請(qǐng)確保你的電腦上成功安裝了Python。然后,通過(guò)PIP安裝下面這些python庫(kù):

  1. pip install pandas 
  2. pip install matplotlib 
  3. pip install scikit-learn 

在下面這段代碼中,我們使用pandas中的一些方法查看IRIS數(shù)據(jù)集的一些屬性。

  1. from sklearn import datasets 
  2. import pandas as pd 
  3. import matplotlib.pyplot as plt 
  4.  
  5. # Loading IRIS dataset from scikit-learn object into iris variable. 
  6. iris = datasets.load_iris() 
  7.  
  8. # Prints the type/type object of iris 
  9. print(type(iris)) 
  10. <class 'sklearn.datasets.base.Bunch'> 
  11.  
  12. # prints the dictionary keys of iris data 
  13. print(iris.keys()) 
  14.  
  15. # prints the type/type object of given attributes 
  16. print(type(iris.data), type(iris.target)) 
  17.  
  18. # prints the no of rows and columns in the dataset 
  19. print(iris.data.shape) 
  20.  
  21. # prints the target set of the data 
  22. print(iris.target_names) 
  23.  
  24. # Load iris training dataset 
  25. X = iris.data 
  26.  
  27. # Load iris target set 
  28. Y = iris.target 
  29.  
  30. # Convert datasets' type into dataframe 
  31. df = pd.DataFrame(X, columns=iris.feature_names) 
  32.  
  33. # Print the first five tuples of dataframe. 
  34. print(df.head()) 

2. 輸出:

  1. <class ‘sklearn.datasets.base.Bunch’> 
  2. dict_keys([‘data’, ‘target’, ‘target_names’, ‘DESCR’, ‘feature_names’])] 
  3. <class ‘numpy.ndarray’> <class ‘numpy.ndarray’> 
  4. (150, 4) 
  5. [‘setosa’ ‘versicolor’ ‘virginica’] 
  6. sepal length (cm) sepal width (cm) petal length (cm) petal width  (cm) 
  7. 0   5.1   3.5   1.4  0.2 
  8. 1   4.9   3.0   1.4  0.2 
  9. 2   4.7   3.2   1.3  0.2 
  10. 3   4.6   3.1   1.5  0.2 
  11. 4   5.0   3.6   1.4  0.2 

三、Sklearn中的K最近鄰算法

如果一個(gè)算法僅存儲(chǔ)訓(xùn)練集數(shù)據(jù),并等待測(cè)試集數(shù)據(jù)的給出,那么這個(gè)算法便可認(rèn)為是一個(gè)“懶惰學(xué)習(xí)法”。直到給定測(cè)試集數(shù)據(jù),它才會(huì)根據(jù)它與存儲(chǔ)的訓(xùn)練集樣本的相似性來(lái)對(duì)新樣本進(jìn)行分類。

K近鄰分類器就是一個(gè)懶惰學(xué)習(xí)法。

K近鄰基于類比學(xué)習(xí),比較一個(gè)測(cè)試樣本和與之相似訓(xùn)練集數(shù)據(jù)。訓(xùn)練集有n個(gè)屬性表征。每個(gè)樣本由n維空間中的一個(gè)點(diǎn)表示。這樣,訓(xùn)練集中的所有樣本都儲(chǔ)存在n維模式空間中。當(dāng)給定一個(gè)未知的樣本,K近鄰分類器在模式空間中搜尋和未知樣本最接近的k個(gè)訓(xùn)練樣本。這k個(gè)訓(xùn)練樣本就是未知樣本的k個(gè)近鄰。

“接近度”用距離來(lái)度量,例如歐幾里得距離。較好的K值可以通過(guò)實(shí)驗(yàn)確定。

在下面這段代碼中,我們導(dǎo)入KNN分類器,將之應(yīng)用到我們的輸入數(shù)據(jù)中,然后對(duì)花卉進(jìn)行分類。

  1. from sklearn import datasets 
  2. from sklearn.neighbors import KNeighborsClassifier 
  3.  
  4. # Load iris dataset from sklearn 
  5. iris = datasets.load_iris() 
  6.  
  7. # Declare an of the KNN classifier class with the value with neighbors. 
  8. knn = KNeighborsClassifier(n_neighbors=6
  9.  
  10. # Fit the model with training data and target values 
  11. knn.fit(iris['data'], iris['target']) 
  12.  
  13. # Provide data whose class labels are to be predicted 
  14. X = [ 
  15.     [5.9, 1.0, 5.1, 1.8], 
  16.     [3.4, 2.0, 1.1, 4.8], 
  17.  
  18. # Prints the data provided 
  19. print(X) 
  20.  
  21. # Store predicted class labels of X 
  22. prediction = knn.predict(X) 
  23.  
  24. # Prints the predicted class labels of X 
  25. print(prediction) 

輸出:

  1. [1 1] 

其中,0,1,2分別代表不同的花。在該例子中,對(duì)于給定的輸入,KNN分類器將它們都預(yù)測(cè)成為1這個(gè)類別的花。

KNN對(duì)IRIS數(shù)據(jù)集分類的直觀可視化

四、回歸

回歸通常被定義為確定兩個(gè)或多個(gè)變量之間的相關(guān)關(guān)系。例如,你要通過(guò)給定的數(shù)據(jù)X預(yù)測(cè)一個(gè)人的收入。這里,目標(biāo)變量是指該變量是我們關(guān)心以及想要預(yù)測(cè)的未知變量,而連續(xù)是指Y的取值沒(méi)有間隔。

預(yù)測(cè)收入是一個(gè)經(jīng)典的回歸問(wèn)題。你的輸入應(yīng)當(dāng)包含所有與收入相關(guān)的個(gè)人信息(比如特征),這些信息可以預(yù)測(cè)收入,例如工作時(shí)長(zhǎng)、教育經(jīng)歷、職稱以及他的曾住地等。

1. 回歸模型

一些常見(jiàn)的回歸模型有

  • 線性回歸
  • 邏輯回歸
  • 多項(xiàng)式回歸

線性回歸通過(guò)擬合一條直線(回歸線)來(lái)建立因變量(Y)與一個(gè)或多個(gè)自變量(X)之間關(guān)系。

用數(shù)學(xué)公示表示,即h(xi) = βo + β1 * xi + e,其中

  • βo是截距
  • β1是斜率
  • e是誤差項(xiàng)

用圖表示,即

邏輯回歸是一種預(yù)測(cè)類別的算法,用于找出特征和特定輸出概率之間關(guān)系。

當(dāng)然了,我們也可以把邏輯回歸歸類為分類算法,但就像我們剛才所說(shuō),邏輯回歸的輸出其實(shí)是目標(biāo)對(duì)象屬于某一類別的概率。既然概率是連續(xù)的,我們依舊把邏輯回歸算作回歸算法。

用數(shù)學(xué)公式表示:p(X) = βo + β1 * X,其中p(x) = p(y = 1 | x)

圖形表示為:

多項(xiàng)式回歸是一種將自變量x與因變量y的關(guān)系擬合為x的n階多項(xiàng)式的回歸算法。

2. 解決線性回歸問(wèn)題

我們有數(shù)據(jù)集X,以及對(duì)應(yīng)的目標(biāo)值Y,我們使用普通最小二乘法通過(guò)最小化預(yù)測(cè)誤差來(lái)擬合線性模型

給定的數(shù)據(jù)集同樣劃分為訓(xùn)練集和測(cè)試集。訓(xùn)練集由已知標(biāo)簽的樣本組成,因此算法能夠通過(guò)這些已知標(biāo)簽的樣本來(lái)學(xué)習(xí)。測(cè)試集樣本不包含標(biāo)簽,你并不知道你試圖預(yù)測(cè)樣本的標(biāo)簽值。

我們將選擇一個(gè)需要訓(xùn)練的特征,應(yīng)用線性回歸方法擬合訓(xùn)練數(shù)據(jù),然后預(yù)測(cè)測(cè)試集的輸出。

3. 用Sklearn實(shí)現(xiàn)線性回歸

  1. from sklearn import datasets, linear_model 
  2. import matplotlib.pyplot as plt 
  3. import numpy as np 
  4.  
  5. # Load the diabetes dataset 
  6. diabetes = datasets.load_diabetes() 
  7.  
  8.  
  9. # Use only one feature for training 
  10. diabetesdiabetes_X = diabetes.data[:, np.newaxis, 2] 
  11.  
  12. # Split the data into training/testing sets 
  13. diabetes_Xdiabetes_X_train = diabetes_X[:-20] 
  14. diabetes_Xdiabetes_X_test = diabetes_X[-20:] 
  15.  
  16. # Split the targets into training/testing sets 
  17. diabetesdiabetes_y_train = diabetes.target[:-20] 
  18. diabetesdiabetes_y_test = diabetes.target[-20:] 
  19.  
  20. # Create linear regression object 
  21. regr = linear_model.LinearRegression() 
  22.  
  23. # Train the model using the training sets 
  24. regr.fit(diabetes_X_train, diabetes_y_train) 
  25.  
  26. # Input data 
  27. print('Input Values') 
  28. print(diabetes_X_test) 
  29.  
  30. # Make predictions using the testing set 
  31. diabetes_y_pred = regr.predict(diabetes_X_test) 
  32.  
  33. # Predicted Data 
  34. print("Predicted Output Values") 
  35. print(diabetes_y_pred) 
  36.  
  37. # Plot outputs 
  38. plt.scatter(diabetes_X_test, diabetes_y_test, color='black'
  39. plt.plot(diabetes_X_test, diabetes_y_pred, color='red'linewidth=1
  40.  
  41. plt.show() 

4. 輸入

輸入值:

  1.   [ 0.07786339]  [-0.03961813]  [ 0.01103904]  [-0.04069594]   
  2.   [-0.03422907]  [ 0.00564998]  [ 0.08864151]  [-0.03315126]  
  3.   [-0.05686312]  [-0.03099563]  [ 0.05522933]  [-0.06009656] 
  4.   [ 0.00133873]  [-0.02345095]  [-0.07410811]  [ 0.01966154] 
  5.   [-0.01590626]  [-0.01590626]  [ 0.03906215]  [-0.0730303 ] 
  6.   ] 

預(yù)測(cè)的輸出值:

  1. [  
  2.  225.9732401   115.74763374  163.27610621  114.73638965    
  3.  120.80385422  158.21988574  236.08568105  121.81509832   
  4.  99.56772822   123.83758651  204.73711411   96.53399594   
  5.  154.17490936  130.91629517   83.3878227   171.36605897 
  6.  137.99500384  137.99500384  189.56845268   84.3990668  
  7.  ] 

 

五、結(jié)語(yǔ)

提一下常用的監(jiān)督學(xué)習(xí)的python庫(kù)

  • Scikit-Learn
  • Tensorflow
  • Pytorch

原文鏈接:https://towardsdatascience.com/supervised-learning-with-python-cf2c1ae543c1

【本文是51CTO專欄機(jī)構(gòu)大數(shù)據(jù)文摘的原創(chuàng)譯文,微信公眾號(hào)“大數(shù)據(jù)文摘( id: BigDataDigest)”】

     大數(shù)據(jù)文摘二維碼

 

戳這里,看該作者更多好文

 

責(zé)任編輯:趙寧寧 來(lái)源: 51CTO專欄
相關(guān)推薦

2019-01-24 09:00:00

PythonAutoML機(jī)器學(xué)習(xí)

2015-10-12 10:37:42

學(xué)習(xí)算法檢測(cè)

2023-11-23 15:54:01

人工智能監(jiān)督學(xué)習(xí)無(wú)監(jiān)督學(xué)習(xí)

2021-12-11 20:20:19

Python算法線性

2020-04-28 17:26:04

監(jiān)督學(xué)習(xí)無(wú)監(jiān)督學(xué)習(xí)機(jī)器學(xué)習(xí)

2021-05-18 14:42:55

PythonMySQL

2023-12-01 16:27:05

機(jī)器學(xué)習(xí)無(wú)監(jiān)督學(xué)習(xí)

2017-06-12 14:04:45

深度學(xué)習(xí)人工智能

2015-03-23 12:33:28

2022-07-15 10:37:22

AI研究數(shù)據(jù)

2015-04-22 11:29:45

PythonPython創(chuàng)建瀑布圖

2022-06-27 14:53:18

監(jiān)督學(xué)習(xí)機(jī)器學(xué)習(xí)人工智能

2020-08-16 11:34:43

人工智能機(jī)器學(xué)習(xí)技術(shù)

2020-08-14 11:00:44

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

2019-10-14 10:40:03

機(jī)器學(xué)習(xí)人工智能非監(jiān)督學(xué)習(xí)

2022-07-17 15:46:24

機(jī)器學(xué)習(xí)無(wú)監(jiān)督學(xué)習(xí)算法

2024-08-16 08:15:02

2023-08-03 08:51:07

2018-05-14 10:43:53

平衡數(shù)據(jù)數(shù)據(jù)分析Python

2021-05-10 06:48:11

Python騰訊招聘
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 久久综合伊人 | 欧美一区二区三区在线观看 | 一区二区日本 | 正在播放一区二区 | 一级片免费视频 | 91精品中文字幕一区二区三区 | 国产精品久久久久久婷婷天堂 | 精品无码久久久久久国产 | 亚洲成人日韩 | 网黄在线| 日美女逼逼 | 久久精品网 | 成人黄色电影在线观看 | 黄色av大片 | 亚洲国产成人精品女人久久久 | 成人欧美一区二区三区黑人孕妇 | 啪啪毛片 | 成年人网站免费 | 麻豆精品一区二区三区在线观看 | 天天天天操| 国产精品99视频 | 91在线视频免费观看 | 婷婷成人在线 | 91五月天| 中文字幕国产在线 | 91国产视频在线观看 | 一区二区三区中文字幕 | av影音资源 | 免费三级网站 | 日本精品视频一区二区三区四区 | 黄色成人免费看 | www.日日操| 羞羞色影院 | 午夜免费在线 | 狠狠干2020 | 日本久草 | 在线观看中文视频 | 久久av一区二区三区 | 在线视频国产一区 | 亚洲综合久久久 | 国产精品美女久久久久aⅴ国产馆 |