監督與無監督的學習
機器學習 (ML) 是一種強大的工具,使電腦能夠從資料中學習並進行預測或決策。但並非所有機器學習都是相同的——存在不同類型的學習,每種學習都適用於特定任務。最常見的兩種類型是監督學習和無監督學習。在本文中,我們將探討它們之間的區別,提供現實世界的例子,並逐步介紹程式碼片段,以幫助您了解它們的工作原理。
監督學習是什麼?
監督學習是一種機器學習,其中演算法從標記資料中學習。換句話說,您提供給模型的資料包括輸入特徵和正確的輸出(標籤)。目標是讓模型學習輸入和輸出之間的關係,以便它可以對新的、未見的資料做出準確的預測。
監督學習的現實世界範例
電子郵件垃圾郵件偵測:
- 輸入:電子郵件的文字。
- 輸出:指示電子郵件是「垃圾郵件」還是「非垃圾郵件」的標籤。
- 模型學習根據標記的範例對電子郵件進行分類。
房屋價格預測:
- 輸入:房屋的特徵(例如,平方英尺、臥室數量、位置)。
- 輸出:房屋的價格。
- 模型學習根據歷史資料預測價格。
醫療診斷:
- 輸入:患者資料(例如,症狀、化驗結果)。
- 輸出:診斷(例如,「健康」或「糖尿病」)。
- 模型學習根據標記的醫療記錄進行診斷。
無監督學習是什麼?
無監督學習是一種機器學習,其中演算法從未標記的資料中學習。與監督學習不同,沒有提供正確的輸出。相反,模型嘗試自己找出資料中的模式、結構或關係。
無監督學習的現實世界範例
客戶細分:
- 輸入:客戶資料(例如,年齡、購買歷史、位置)。
- 輸出:相似顧客的群體(例如,「高頻購買者」、「預算購物者」)。
- 模型識別具有相似行為的客戶群集。
異常偵測:
- 輸入:網路流量資料。
- 輸出:辨識可能表示網路攻擊的異常模式。
- 模型偵測資料中的異常值或異常。
市場籃子分析:
- 輸入:雜貨店的交易資料。
- 輸出:經常一起購買的產品組(例如,「麵包和黃油」)。
- 模型辨識產品之間的關聯。
監督學習與無監督學習的主要差異
**方面** | **监督学习** | **无监督学习** |
---|---|---|
**数据** | 标记的(提供输入和输出) | 未标记的(仅提供输入) |
**目标** | 预测结果或对数据进行分类 | 发现数据中的模式或结构 |
**示例** | 分类、回归 | 聚类、降维 |
**复杂性** | 更容易评估(已知输出) | 更难评估(没有基本事实) |
**用例** | 垃圾邮件检测、价格预测 | 客户细分、异常检测 |
程式碼範例
讓我們深入研究一些程式碼,看看監督學習和無監督學習在實踐中的工作方式。我們將使用 Python 和流行的 Scikit-learn 函式庫。
監督學習範例:預測房屋價格
我們將使用簡單的線性迴歸模型根據平方英尺等特徵預測房屋價格。
# 导入库 import numpy as np import pandas as pd from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression from sklearn.metrics import mean_squared_error # 创建样本数据集 data = { 'SquareFootage': [1400, 1600, 1700, 1875, 1100, 1550, 2350, 2450, 1425, 1700], 'Price': [245000, 312000, 279000, 308000, 199000, 219000, 405000, 324000, 319000, 255000] } df = pd.DataFrame(data) # 特征 (X) 和标签 (y) X = df[['SquareFootage']] y = df['Price'] # 将数据分成训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 训练线性回归模型 model = LinearRegression() model.fit(X_train, y_train) # 做出预测 y_pred = model.predict(X_test) # 评估模型 mse = mean_squared_error(y_test, y_pred) print(f"均方误差:{mse:.2f}")
無監督學習範例:客戶細分
我們將使用 K 均值聚類演算法根據客戶的年齡和消費習慣將客戶分組。
# 导入库 import numpy as np import pandas as pd from sklearn.cluster import KMeans import matplotlib.pyplot as plt # 创建样本数据集 data = { 'Age': [25, 34, 22, 45, 32, 38, 41, 29, 35, 27], 'SpendingScore': [30, 85, 20, 90, 50, 75, 80, 40, 60, 55] } df = pd.DataFrame(data) # 特征 (X) X = df[['Age', 'SpendingScore']] # 训练 K 均值聚类模型 kmeans = KMeans(n_clusters=3, random_state=42) df['Cluster'] = kmeans.fit_predict(X) # 可视化集群 plt.scatter(df['Age'], df['SpendingScore'], c=df['Cluster'], cmap='viridis') plt.xlabel('年龄') plt.ylabel('消费评分') plt.title('客户细分') plt.show()
何時使用監督學習與無監督學習
何時使用監督式學習:
- 您有標記的資料。
- 您想預測結果或將資料分類。
- 範例:預測銷售額、對影像進行分類、偵測詐欺。
何時使用無監督學習:
- 您有未標記的資料。
- 您想發現隱藏的模式或結構。
- 範例:將客戶分組、減少資料維度、查找異常。
結論
監督學習和無監督學習是機器學習中的兩種基本方法,每種方法都有其自身的優點和用例。監督學習非常適合在您有標記資料時進行預測,而無監督學習在您想探索和發現未標記資料中的模式時非常出色。
透過理解差異並練習現實世界的例子(例如本文中的例子),您將掌握這些基本的機器學習技術。如果您有任何疑問或想分享您自己的經驗,請隨時在下方留言。
以上是監督與無監督的學習的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Linux終端中查看Python版本時遇到權限問題的解決方法當你在Linux終端中嘗試查看Python的版本時,輸入python...

使用FiddlerEverywhere進行中間人讀取時如何避免被檢測到當你使用FiddlerEverywhere...

在使用Python的pandas庫時,如何在兩個結構不同的DataFrame之間進行整列複製是一個常見的問題。假設我們有兩個Dat...

Uvicorn是如何持續監聽HTTP請求的? Uvicorn是一個基於ASGI的輕量級Web服務器,其核心功能之一便是監聽HTTP請求並進�...

如何在10小時內教計算機小白編程基礎?如果你只有10個小時來教計算機小白一些編程知識,你會選擇教些什麼�...

攻克Investing.com的反爬蟲策略許多人嘗試爬取Investing.com(https://cn.investing.com/news/latest-news)的新聞數據時,常常�...
