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

原來機器學習那么簡單—SVR

人工智能
我們可以看到支持向量回歸在實際數據集上的應用。盡管 SVR 是一種強大的回歸工具,但選擇合適的核函數和調整模型參數對于獲得最佳性能至關重要。

一、算法介紹

支持向量回歸(SVR)是一種監督學習算法,用于解決回歸問題。其核心思想是找到一個超平面,這個超平面能夠以最小的誤差包含所有的訓練樣本。與支持向量機處理分類問題類似,支持向量回歸的目標是確保盡可能多的數據點位于由超平面決定的邊界內。

二、算法原理

2.1 基本思想

SVR的目標是找到一個函數 ,使得該函數在整個數據集上的偏差最小,并且同時保證模型的復雜度較低,以提高模型的泛化能力。在實現上,這通常通過引入所謂的“軟間隔”來實現,允許某些數據點可以處于誤差允許的范圍之外,從而達到更好的預測效果。

2.2 數學模型

在支持向量回歸中,我們試圖找到一個線性函數 ,其中 是權重向量, 是偏置。我們希望大部分的數據點 都滿足 ,這里的 是預先設定的一個小的非負數,表示容忍的誤差范圍。

為了找到這樣的函數,我們需要解決以下優化問題:

其中, 和 是松弛變量,用于處理不在誤差范圍內的數據點, 是正則化參數,用于控制模型復雜度和誤差之間的平衡。

2.3 核技巧

在實際應用中,很多問題的數據分布可能是非線性的,直接使用線性函數進行回歸可能無法達到較好的效果。SVR通過引入核函數來解決這一問題。核函數可以將數據映射到一個高維空間,在這個高維空間中,原本線性不可分的數據可能變得線性可分。常見的核函數包括線性核、多項式核、徑向基函數(RBF)核等。

三、案例分析

為了進一步理解支持向量回歸(SVR)的應用,我們將使用加州房價數據集進行模型訓練和測試。加州房價數據集包含以下特征:

  • MedInc:收入中位數
  • HouseAge:房屋年齡的中位數
  • AveRooms:平均房間數目
  • AveBedrms:平均臥室數目
  • Population:區域人口
  • AveOccup:平均入住率
  • Latitude:緯度
  • Longitude:經度

數據集的目標變量為MedHouseVal,即房屋價值的中位數(單位為$100,000)。

案例代碼

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import fetch_california_housing
from sklearn.model_selection import train_test_split
from sklearn.svm import SVR
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import mean_squared_error

# 加載數據
california = fetch_california_housing()
X = pd.DataFrame(california.data, columns=california.feature_names)
y = california.target
X
# 數據預處理
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

# 劃分訓練集和測試集
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.2, random_state=42)

# 創建SVR模型
svr = SVR(kernel='rbf')

# 訓練模型
svr.fit(X_train, y_train)

# 預測測試集
y_pred = svr.predict(X_test)

# 計算MSE
mse = mean_squared_error(y_test, y_pred)
print(f'Mean Squared Error: {mse}')

# 可視化實際值與預測值
plt.figure(figsize=(10, 6))
plt.scatter(y_test, y_pred, color='blue')
plt.plot([min(y_test), max(y_test)], [min(y_test), max(y_test)], 'r--', lw=2)
plt.xlabel('Actual')
plt.ylabel('Predicted')
plt.title('Actual vs. Predicted')
plt.show()

# 可視化誤差分布
errors = y_pred - y_test
plt.figure(figsize=(10, 6))
plt.hist(errors, bins=20, color='purple')
plt.xlabel('Prediction Error')
plt.ylabel('Frequency')
plt.title('Prediction Error Distribution')
plt.show()

四、結果分析

通過運行代碼,得到模型在測試集上的平均平方誤差(MSE)為:0.3551984619989417。這個值越低,表示模型的預測能力越好。大家可以通過更換 SVR 的核函數類型(如 'linear', 'poly' 等)來嘗試改善模型的表現。

預測值與實際值的對比圖如下:

圖片圖片

誤差分布圖如下:

圖片圖片

五、結論

通過這個案例,我們可以看到支持向量回歸在實際數據集上的應用。盡管 SVR 是一種強大的回歸工具,但選擇合適的核函數和調整模型參數對于獲得最佳性能至關重要。

責任編輯:武曉燕 來源: 寶寶數模AI
相關推薦

2020-06-23 11:49:08

神經網絡數據圖形

2021-04-19 05:42:51

Mmap文件系統

2021-10-14 09:52:53

Dockerfile鏡像容器

2020-11-02 14:38:56

Java 深度學習模型

2017-09-15 18:13:57

機器學習深度學習語音識別

2022-05-18 16:24:36

PythonPyCaret機器學習

2023-11-01 14:49:07

2024-09-04 08:27:15

2014-03-21 15:30:06

產品經理PM能力

2010-08-25 21:50:36

配置DHCP

2015-04-30 10:12:13

開源云平臺OpenStack

2019-05-17 16:13:25

機器學習SQLFlow螞蟻金服

2013-12-20 09:19:18

計算機學習

2017-12-14 20:25:32

2018-10-09 14:50:44

機器學習神經網絡數據分析

2018-06-08 16:48:09

PythonQQ機器人

2017-02-22 14:52:51

機器學習人工智能聲音

2010-08-20 09:37:04

虛擬化

2011-03-21 16:10:08

SQL Server日志

2013-01-15 10:09:43

Windows Ser
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产乱码一区 | 欧美一级三级 | 日韩精品在线观看一区二区三区 | 日日干日日色 | 成人毛片视频在线播放 | 中文字幕视频在线观看 | 国产成人精品久久二区二区 | 国产午夜精品理论片a大结局 | a黄视频| 毛片久久久 | 91av视频| 天天爽天天操 | 国产一区精品 | 久久久婷婷 | 香蕉一区 | 午夜资源 | 欧美一级黄色免费看 | www亚洲精品| 999久久| 欧美aaaaaaaa| 九色av| 日韩中文字幕一区二区 | 精品日韩一区 | 免费视频久久久久 | 国产精品一区二区三区在线 | 欧美成人h版在线观看 | 影音av| 亚洲精品1区2区3区 91免费看片 | 国产精品网页 | 在线视频 亚洲 | www日日日| 黄色三级免费网站 | 日产久久| 国产精彩视频 | 三级成人在线 | 色男人天堂av | 国产精品99久久久久久宅男 | 爱高潮www亚洲精品 中文字幕免费视频 | 久久国产精品免费一区二区三区 | 久久人人爽人人爽人人片av免费 | 国产精品美女一区二区三区 |