搜尋
首頁科技週邊人工智慧監督學習有哪些常見演算法?都是如何應用的

監督學習有哪些常見演算法?都是如何應用的

Apr 10, 2023 am 08:21 AM
人工智慧機器學習監督學習

什麼是監督學習?

監督學習是機器學習的子集,監督學習會對機器學習模型的輸入資料進行標記,並對其進行練習。因此,監督模型能最大限度地預測模型的輸出結果。

監督學習背後的概念也可以從現實生活中找到影子,例如老師為孩子做輔導。假設老師要教孩子認識貓、狗的圖像。她/他將透過不斷地向孩子展示貓或狗的圖像來輔導孩子,同時告知孩子圖像是狗還是貓。

展示和告知圖像的過程可以被認為是標記數據,在機器學習模型訓練過程中,會被告知哪些數據屬於哪個類別。

監督學習有什麼用?監督學習可用於回歸和分類問題。分類模型允許演算法確定給定資料屬於哪個組別。範例可能包括 True/False、Dog/Cat 等。

由於迴歸模型能夠根據歷史資料預測將來的數值,因此它會被用來預測員工的薪資或房地產的售價。

在本文中,我們將列出一些用於監督學習的常見演算法,以及關於此類演算法的實用教學。

線性迴歸

線性迴歸是一種監督學習演算法,它根據給定的輸入值預測輸出值。當目標(輸出)變數傳回連續值時,使用線性迴歸。

線性演算法主要有兩種類型,簡單線性迴歸和多元線性迴歸。

簡單線性迴歸只使用一個獨立(輸入)變數。一個例子是透過給定的身高來預測孩子的年齡。

另一方面,多元線性迴歸可以使用多個自變數來預測其最終結果。一個例子是根據它的位置、大小、需求等來預測給定房產的價格。

以下是線性迴歸公式

監督學習有哪些常見演算法?都是如何應用的

對於 Python的範例,我們將使用線性迴歸來預測相對於給定 x 值的 y 值。

我們給定的資料集僅包含兩列:x 和 y。請注意,y 結果將傳回連續值。

下面是給定資料集的截圖:

監督學習有哪些常見演算法?都是如何應用的

使用Python 的線性迴歸模型範例

1.導入必要的函式庫

import numpy as np <br>import pandas as pd <br>import matplotlib.pyplot as plt <br>import seaborn as sns from sklearn <br>import linear_model from sklearn.model_selection <br>import train_test_split import os

2. 讀取和取樣我們的資料集

#為了簡化資料集,我們抽取了50 個資料行的樣本,並將資料值四捨五入為2 個有效數字。

請注意,您應該在完成此步驟之前匯入給定的資料集。

df = pd.read_csv("../input/random-linear-regression/train.csv") <br>df=df.sample(50) df=round(df,2)

3. 過濾 Null 和Infinite 值

如果資料集包含空值和無限值,則可能會出現錯誤。因此,我們將使用 clean_dataset 函數來清理這些值的資料集。

def clean_dataset(df): <br>assert isinstance(df, pd.DataFrame), "df needs to be a pd.DataFrame" <br>df.dropna(inplace=True) <br>indices_to_keep = ~df.isin([np.nan, np.inf, -np.inf]).any(1) <br>return df[indices_to_keep].astype(np.float64)<br>df=clean_dataset(df)

4. 選擇我們依賴和獨立的價值觀

請注意,我們將資料轉換為 DataFrame 格式。 #dataframe 資料類型是一種二維結構,可將我們的資料對齊到行和列中。

5. 拆分資料集

我們將資料集分割為訓練和測試部分。選擇測試資料集大小為總資料集的 20%。

請注意,透過設定random_state=1,每次模型運行時,都會發生相同的數據拆分,從而產生完全相同的訓練和測試數據集。

這在您想要進一步調整模型的情況下很有用。

#
x_train,  x_test, y_train, y_test = train_test_split(X, Y, test_size=0.2, random_state=1)

6.建立线性回模型

使用导入的线性回归模型,我们可以在模型中自由使用线性回归算法,绕过我们为给定模型获得的 x 和 y 训练变量。

lm=linear_model.LinearRegression() lm.fit(x_train,y_train)

7. 以分散的方式绘制我们的数据

df.plot(kind="scatter", x="x", y="y")

8. 制我线性回归线

plt.plot(X,lm.predict(X), color="red")

監督學習有哪些常見演算法?都是如何應用的

蓝点表示数据点,而红线是模型绘制的最佳拟合线性回归线。线性模型算法总是会尝试绘制最佳拟合线以尽可能准确地预测结果。

逻辑回归

与线性回归类似,逻辑回归根据输入变量预测输出值,两种算法的主要区别在于逻辑回归算法的输出是分类(离散)变量。

对于 Python示例,使用逻辑回归将”分成两个不同的类别/种类。给定的数据集中会包括不同花的多个特征。

模型的目的是将给花识别为Iris-setosa、Iris-versicolor或 Iris-virginica 几个种类

下面是给定数据集的截图

監督學習有哪些常見演算法?都是如何應用的

使用 Python 的逻辑回归模型示例

1.导入必要的库

import numpy as np <br>import pandas as pd from sklearn.model_selection <br>import train_test_split import warnings warnings.filterwarnings('ignore')

2. 导入数据集

data = pd.read_csv('../input/iris-dataset-logistic-regression/iris.csv')

3. 选择我们依赖和独立的价值观

对于独立 value(x) ,将包括除类型列之外的所有可用列。至于我们的可靠值(y),将只包括类型列。

X = data[['x0','x1','x2','x3','x4']] <br>y = data[['type']]

4. 拆分数据集

将数据集分成两部分,80% 用于训练数据集,20% 用于测试数据集。

X_train,X_test,y_train,y_test = train_test_split(X,y, test_size=0.2, random_state=1)

5. 运行逻辑模型

从 linear_model 库中导入整个逻辑回归算法。然后我们可以将 X 和 y 训练数据拟合到逻辑模型中。

from sklearn.linear_model import LogisticRegression <br>model = LogisticRegression(random_state = 0) <br>model.fit(X_train, y_train)

6. 评估我们模型的性能

print(lm.score(x_test, y_test))

返回值为0.9845128775509371,这表明我们模型的高性能。

请注意,随着测试分数的增加,模型的性能也会增加。

7.

import matplotlib.pyplot as plt %matplotlib inline <br>plt.plot(range(len(X_test)), pred,'o',c='r')

输出图:

監督學習有哪些常見演算法?都是如何應用的

在逻辑图中,红点表示给定的数据点。这些点清楚地分为 3 类,Virginica、versicolor 和 setosa 花种。

使用这种技术,逻辑回归模型可以根据花在图表上的位置轻松对花类型进行分类。

支持向量机

支持向量机( SVM) 算法是另一个著名的监督机器学习模型,由 Vladimir Vapnik 创建,它能够解决分类和回归问题。实际上它更多地被用到解决分类问题。

SVM 算法能够将给定的数据点分成不同的组。算法绘制数据之后,可以绘制最合适的线将数据分成多个类别,从而分析数据之间的关系

如下图所示,绘制的线将数据集完美地分成 2 个不同的组,蓝色和绿色。

監督學習有哪些常見演算法?都是如何應用的

SVM 模型可以根据图形的维度绘制直线或超平面。行只能用于二维数据集,这意味着只有 2 列的数据集。

如果是多个特征来预测数据集,就需要更高的维度。在数据集超过 2 维的情况下,支持向量机模型将绘制超平面。

在支持向量机 Python 的示例中,将对 3 种不同的花卉类型进行物种分类。我们的自变量包括花的所有特征,而因变量是花所属物种。

花卉品种包括Iris-setosa Iris-versicolorIris-virginica

下面是数据集的截图:

監督學習有哪些常見演算法?都是如何應用的

使用 Python 的支持向量机模型示例

1.入必要的

import numpy as np <br>import pandas as pd from sklearn.model_selection <br>import train_test_split from sklearn.datasets <br>import load_iris

2. 定的数据集

请注意,在执行此步骤之前,应该导入数据集。

data = pd.read_csv(‘../input/iris-flower-dataset/IRIS.csv’)

3. 将数据列拆分量和自

将 X 值作为自变量,其中包含除物种列之外的所有列。

变量y仅包含模型预测的物种列。

X = data.drop(‘species’, axis=1) y = data[‘species’]

4. 将数据集拆分为训练测试数据集

将数据集分为两部分,其中我们将 80% 的数据放入训练数据集中,将 20% 放入测试数据集中。

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1)

5.入SVM并运行模型

导入了支持向量机算法。然后,使用上面步骤中收到的 X 和 y 训练数据集运行它。

from sklearn.svm import SVC <br>model = SVC( ) <br>model.fit(X_train, y_train)

6. 测试模型的性能

model.score(X_test, y_test)

为了评估模型的性能,将使用 score 函数。在第四步中创建的 X 和 y 测试值输入到 score 方法中。

返回值为0.9666666666667,这表明模型的高性能。

请注意,随着测试分数的增加,模型的性能也会增加。

其他流行的監督機器學習演算法

雖然線性、邏輯和SVM 演算法非常可靠,但還 提到一些有監督的機器學習演算法。

1.決策

監督學習有哪些常見演算法?都是如何應用的

#決策樹演算法

是一種有監督的機器學習模型,它利用樹狀結構來決策。決策樹通常用於分類問題,其中模型可以決定資料集中給定項目所屬的群組。

請注意,使用的樹格式是倒轉樹的格式。 2. 隨機森林

監督學習有哪些常見演算法?都是如何應用的

被認為是更複雜的演算法,#隨機森林演算法

透過建立大量決策樹來實現其最終目標。

意味著同時建立多個決策樹,每個決策樹都會傳回自己的結果,然後將其組合以獲得更好的結果。

對於分類問題,隨機森林模型將產生多個決策樹,並根據大多數樹預測的分類組對給定物件進行分類。 模型可以修復由單一樹引起的過度擬合#問題

#。 同時,隨機森林演算法也可用於迴歸,儘管可能導致不良結果。

監督學習有哪些常見演算法?都是如何應用的3. k-最近

##k最近 #鄰#(KNN) 演算法是一種監督機器學習方法,它將所有給定資料分組到單獨的組中。 這種分組是基於不同個體之間的共同特徵。 KNN 演算法可用於分類和迴歸問題。

###############KNN 的#########################範例#### ########就是############將動物圖像分類到不同的群組集中。 ##########

總結

本文介紹了監督機器學習及其可以解決的兩類問題解釋了分類和迴歸問題,給出了每個輸出資料類型的一些範例。

詳細解釋了線性迴歸是什麼以及它是如何運作的,並提供了一個Python 中的具體範例,它根據獨立的X 變數預測Y 值。

接著介紹 #了邏輯迴歸模型#,

並給出了分類模型範例,該範例將給定的圖像分類為具體花的種類##。 對於支援向量機演算法,#可以用它來預測3 種不同花種的給定花種。

最後#列出#了其他著名的監督機器學習演算法,例如決策樹、隨機森林和K 近鄰演算法。 無論您是為了學習#、工作還是娛樂閱讀本文,我們認為了解這些#演算法是開始

進入機器學習領域的一個開端。

如果您有興趣並想了解更多關於機器學習領域的信息,我們建議您##深入研究此類演算法的工作原理以及如何調整此類模型以進一步提高其性能。

譯者介紹

#崔皓,51CTO社群編輯,資深架構師,擁有18年的軟體開發與架構經驗,10年分散式架構經驗。曾任惠普技術專家。樂於分享,寫了許多熱門科技文章,閱讀量超過60萬。 《分散式架構原則與實作》

##########作者。 ##################原文標題:###############Primary Supervised Learning Algorithms Used in Machine Learning##### ##########,作者:Kevin Vu#########

##

以上是監督學習有哪些常見演算法?都是如何應用的的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:51CTO.COM。如有侵權,請聯絡admin@php.cn刪除
Gemma範圍:Google&#039;用於凝視AI的顯微鏡Gemma範圍:Google&#039;用於凝視AI的顯微鏡Apr 17, 2025 am 11:55 AM

使用Gemma範圍探索語言模型的內部工作 了解AI語言模型的複雜性是一個重大挑戰。 Google發布的Gemma Scope是一種綜合工具包,為研究人員提供了一種強大的探索方式

誰是商業智能分析師以及如何成為一位?誰是商業智能分析師以及如何成為一位?Apr 17, 2025 am 11:44 AM

解鎖業務成功:成為商業智能分析師的指南 想像一下,將原始數據轉換為驅動組織增長的可行見解。 這是商業智能(BI)分析師的力量 - 在GU中的關鍵作用

如何在SQL中添加列? - 分析Vidhya如何在SQL中添加列? - 分析VidhyaApr 17, 2025 am 11:43 AM

SQL的Alter表語句:動態地將列添加到數據庫 在數據管理中,SQL的適應性至關重要。 需要即時調整數據庫結構嗎? Alter表語句是您的解決方案。本指南的詳細信息添加了Colu

業務分析師與數據分析師業務分析師與數據分析師Apr 17, 2025 am 11:38 AM

介紹 想像一個繁華的辦公室,兩名專業人員在一個關鍵項目中合作。 業務分析師專注於公司的目標,確定改進領域,並確保與市場趨勢保持戰略一致。 simu

什麼是Excel中的Count和Counta? - 分析Vidhya什麼是Excel中的Count和Counta? - 分析VidhyaApr 17, 2025 am 11:34 AM

Excel 數據計數與分析:COUNT 和 COUNTA 函數詳解 精確的數據計數和分析在 Excel 中至關重要,尤其是在處理大型數據集時。 Excel 提供了多種函數來實現此目的,其中 COUNT 和 COUNTA 函數是用於在不同條件下統計單元格數量的關鍵工具。雖然這兩個函數都用於計數單元格,但它們的設計目標卻針對不同的數據類型。讓我們深入了解 COUNT 和 COUNTA 函數的具體細節,突出它們獨特的特性和區別,並學習如何在數據分析中應用它們。 要點概述 理解 COUNT 和 COU

Chrome在這裡與AI:每天都有新事物!Chrome在這裡與AI:每天都有新事物!Apr 17, 2025 am 11:29 AM

Google Chrome的AI Revolution:個性化和高效的瀏覽體驗 人工智能(AI)正在迅速改變我們的日常生活,而Google Chrome正在領導網絡瀏覽領域的負責人。 本文探討了興奮

AI的人類方面:福祉和四人底線AI的人類方面:福祉和四人底線Apr 17, 2025 am 11:28 AM

重新構想影響:四倍的底線 長期以來,對話一直以狹義的AI影響來控制,主要集中在利潤的最低點上。但是,更全面的方法認識到BU的相互聯繫

您應該知道的5個改變遊戲規則的量子計算用例您應該知道的5個改變遊戲規則的量子計算用例Apr 17, 2025 am 11:24 AM

事情正穩步發展。投資投入量子服務提供商和初創企業表明,行業了解其意義。而且,越來越多的現實用例正在出現以證明其價值超出

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。