国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

終于把機器學習中的特征選擇搞懂了!!!

人工智能 機器學習
特征選擇是機器學習中的重要步驟,其目的是從高維特征空間中選擇對模型性能最有價值的特征。通過減少冗余和無關的特征,特征選擇可以提高模型的訓練效率、減少過擬合并提升模型的泛化性能。

今天給大家分享機器學習中的一個關鍵概念:特征選擇。

特征選擇是機器學習中的重要步驟,其目的是從高維特征空間中選擇對模型性能最有價值的特征。

通過減少冗余和無關的特征,特征選擇可以提高模型的訓練效率、減少過擬合并提升模型的泛化性能。

特征選擇的重要性

  1. 提高模型性能:通過去除冗余或無關的特征,可以減少噪聲,提高模型的準確性和穩定性。
  2. 減少計算成本:較少的特征意味著更低的計算復雜度,加快訓練和預測速度。
  3. 防止過擬合:去除不相關特征有助于減少模型的復雜度,降低過擬合風險。
  4. 提高模型可解釋性:更少的特征使得模型更容易理解和解釋,有助于發現數據中的關鍵因素。

特征選擇的方法

特征選擇通常分為三種主要方法:

  • 過濾法
  • 包裹法
  • 嵌入法

過濾法

過濾法基于統計指標對特征進行評分,并根據評分選擇特征。

這類方法與具體的機器學習算法無關,通常作為預處理步驟。

常見技術

  • 相關系數,衡量每個特征與目標變量之間的線性相關性。例如,皮爾遜相關系數。
  • 卡方檢驗,適用于分類問題,評估特征與目標變量的獨立性。
  • 信息增益,基于信息理論,衡量特征提供的信息量。
  • 互信息,衡量特征與目標變量之間的非線性依賴關系。
  • 方差選擇法,去除方差低于某一閾值的特征,認為這些特征變化較小,信息量不足。

優缺點

  • 優點:計算速度快,適用于高維數據。
  • 缺點:忽略特征之間的相關性,可能無法捕捉到特征與目標變量之間的復雜關系。

包裝法

包裝法將特征選擇視為一個搜索問題,通過訓練模型評估特征子集的性能,選擇最優子集。這類方法與具體的機器學習算法緊密相關。

常見技術

  • 遞歸特征消除
    遞歸地訓練模型,移除最不重要的特征,直到達到預定的特征數量。
  • 前向選擇
    從空特征集開始,逐步添加對模型性能提升最大的特征。
  • 后向消除
    從所有特征開始,逐步移除對模型性能影響最小的特征。

優缺點

  • 優點:能夠考慮特征之間的相互作用,通常能獲得更好的模型性能。
  • 缺點:計算成本高,尤其在高維數據中,可能不適用。

嵌入法

嵌入法在模型訓練過程中進行特征選擇,將特征選擇嵌入到模型的訓練過程中。

這類方法結合了過濾法和包裝法的優點。

常見技術

  • Lasso回歸:通過 L1 正則化,將不重要的特征系數壓縮為零,實現特征選擇。
  • 決策樹及其集成方法:例如,隨機森林和梯度提升樹可以基于特征重要性進行特征選擇。
  • 彈性網絡:結合 L1 和 L2 正則化,兼具 Lasso和嶺回歸的優點。

優缺點

  • 優點:與模型訓練相結合,能夠自動選擇重要特征,計算效率較高。
  • 缺點:依賴于具體的模型選擇。

案例分享

下面我將通過 Python 代碼展示如何在機器學習中應用不同的特征選擇方法,包括過濾法、包裝法和嵌入法。

這里,我們以經典的乳腺癌數據集為例進行說明。

數據加載與預處理

首先,我們導入相關的庫,并加載數據集。

# 導入必要的庫
import pandas as pd
import numpy as np
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
import matplotlib.pyplot as plt
import seaborn as sns

# 加載乳腺癌數據集
data = load_breast_cancer()
X = pd.DataFrame(data.data, columns=data.feature_names)
y = pd.Series(data.target)

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

scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

過濾法

過濾法基于統計指標對特征進行評分和選擇。

這里我們使用 SelectKBest 結合卡方檢驗和互信息兩種方法。

使用卡方檢驗選擇特征

from sklearn.feature_selection import SelectKBest, chi2
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score

# 由于卡方檢驗要求非負特征,我們確保數據為非負
X_train_chi2 = X_train_scaled - X_train_scaled.min()
X_test_chi2 = X_test_scaled - X_train_scaled.min()

# 選擇k個最佳特征
k = 2
selector = SelectKBest(score_func=chi2, k=k)
X_train_selected = selector.fit_transform(X_train_chi2, y_train)
X_test_selected = selector.transform(X_test_chi2)

# 查看選擇的特征
selected_features = X.columns[selector.get_support()]
print(f"選擇的特征(卡方檢驗): {list(selected_features)}")

# 使用邏輯回歸進行訓練和評估
model = LogisticRegression(max_iter=200)
model.fit(X_train_selected, y_train)
y_pred = model.predict(X_test_selected)
accuracy = accuracy_score(y_test, y_pred)
print(f"過濾法(卡方檢驗)后的準確率: {accuracy:.4f}")

#選擇的特征(卡方檢驗): ['mean concave points', 'worst concave points']
#過濾法(卡方檢驗)后的準確率: 0.9386

使用互信息選擇前10個特征

from sklearn.feature_selection import mutual_info_classif

# 選擇前10個互信息最高的特征
selector_mi = SelectKBest(score_func=mutual_info_classif, k=10)
X_train_mi_selected = selector_mi.fit_transform(X_train_scaled, y_train)
X_test_mi_selected = selector_mi.transform(X_test_scaled)

# 查看選擇的特征
selected_features_mi = X.columns[selector_mi.get_support()]
print("互信息選擇的特征:\n", selected_features_mi)

# 訓練模型
model.fit(X_train_mi_selected, y_train)
y_pred = model.predict(X_test_mi_selected)

# 評估模型
accuracy = accuracy_score(y_test, y_pred)
print("互信息后的模型準確率:", accuracy)

#互信息后的模型準確率: 0.9824561403508771

包裝法

包裝法將特征選擇視為一個搜索問題。

這里我們使用遞歸特征消除(RFE)方法。

from sklearn.feature_selection import RFE

# 使用邏輯回歸作為基模型
model = LogisticRegression(max_iter=200)
# 選擇k個特征
k = 2
rfe = RFE(estimator=model, n_features_to_select=k)
rfe.fit(X_train_scaled, y_train)

# 查看選擇的特征
selected_features = X.columns[rfe.support_]
print(f"選擇的特征(RFE): {list(selected_features)}")

# 訓練并評估模型
X_train_rfe = rfe.transform(X_train_scaled)
X_test_rfe = rfe.transform(X_test_scaled)

model.fit(X_train_rfe, y_train)
y_pred = model.predict(X_test_rfe)
accuracy = accuracy_score(y_test, y_pred)
print(f"包裝法(RFE)后的準確率: {accuracy:.4f}")

#選擇的特征(RFE): ['worst area', 'worst concave points']
#包裝法(RFE)后的準確率: 0.9561

嵌入法

嵌入法在模型訓練過程中進行特征選擇,常見的方法包括Lasso回歸和基于樹的特征重要性。

使用 Lasso 回歸進行特征選擇

from sklearn.linear_model import LassoCV

# 使用Lasso進行特征選擇
lasso = LassoCV(cv=5, random_state=42)
lasso.fit(X_train_scaled, y_train)

# 獲取非零系數的特征
coef = pd.Series(lasso.coef_, index=X.columns)
selected_features_lasso = coef[coef != 0].index
print("Lasso選擇的特征:\n", selected_features_lasso)

# 訓練模型
X_train_lasso_selected = X_train_scaled[:, coef != 0]
X_test_lasso_selected = X_test_scaled[:, coef != 0]
model.fit(X_train_lasso_selected, y_train)
y_pred = model.predict(X_test_lasso_selected)
y_pred = (y_pred > 0.5).astype(int)

# 評估模型
accuracy = accuracy_score(y_test, y_pred)
print("Lasso后的模型準確率:", accuracy)

#Lasso后的模型準確率: 0.9824561403508771

使用隨機森林進行特征重要性排序

from sklearn.ensemble import RandomForestClassifier

# 訓練隨機森林模型
rf = RandomForestClassifier(n_estimators=100, random_state=42)
rf.fit(X_train, y_train)

# 獲取特征重要性
importances = pd.Series(rf.feature_importances_, index=X.columns)
importances_sorted = importances.sort_values(ascending=False)
print("特征重要性排名:\n", importances_sorted)

# 選擇前10個重要特征
selected_features_rf = importances_sorted.head(10).index
print("隨機森林選擇的特征:\n", selected_features_rf)

# 訓練模型
X_train_rf_selected = X_train[selected_features_rf]
X_test_rf_selected = X_test[selected_features_rf]
model.fit(X_train_rf_selected, y_train)
y_pred = model.predict(X_test_rf_selected)

# 評估模型
accuracy = accuracy_score(y_test, y_pred)
print("隨機森林后的模型準確率:", accuracy)

# 隨機森林后的模型準確率: 0.9912280701754386

# 可視化特征重要性
plt.figure(figsize=(10,6))
sns.barplot(x=importances_sorted.values[:10], y=importances_sorted.index[:10])
plt.title("隨機森林特征重要性")
plt.xlabel("重要性分數")
plt.ylabel("特征")
plt.show()

圖片圖片

綜合比較

為了比較不同特征選擇方法對模型性能的影響,我們可以匯總各方法的準確率。

# 匯總準確率
accuracy_results = {
    "卡方檢驗": 0.9386,
    "互信息": 0.9824561403508771,
    "RFE": 0.9561,
    "Lasso": 0.9824561403508771,
    "隨機森林": 0.9912280701754386
}

accuracy_df = pd.DataFrame(list(accuracy_results.items()), columns=["特征選擇方法", "模型準確率"])
print(accuracy_df)

# 可視化比較
plt.figure(figsize=(8,6))
sns.barplot(x="模型準確率", y="特征選擇方法", data=accuracy_df, palette="viridis")
plt.title("不同特征選擇方法的模型準確率比較")
plt.xlabel("準確率")
plt.ylabel("特征選擇方法")
plt.xlim(0.9, 1.0)
plt.show()

圖片圖片


責任編輯:武曉燕 來源: 程序員學長
相關推薦

2025-01-20 09:21:00

2024-10-08 10:16:22

2024-10-28 00:00:10

機器學習模型程度

2024-10-08 15:09:17

2024-10-28 15:52:38

機器學習特征工程數據集

2024-11-05 12:56:06

機器學習函數MSE

2024-09-18 16:42:58

機器學習評估指標模型

2024-10-14 14:02:17

機器學習評估指標人工智能

2024-08-23 09:06:35

機器學習混淆矩陣預測

2024-10-30 08:23:07

2025-01-15 11:25:35

2025-01-07 12:55:28

2025-01-20 09:00:00

2024-11-25 08:20:35

2025-02-17 13:09:59

深度學習模型壓縮量化

2024-08-01 08:41:08

2024-07-17 09:32:19

2024-09-23 09:12:20

2024-10-16 07:58:48

2025-07-15 10:41:44

點贊
收藏

51CTO技術棧公眾號

亚洲免费av网址| 国产精品99视频| 国产精品麻豆视频| 国产综合色一区二区三区| 欧美日本三级| 五月天婷婷综合| 亚洲精品无码国产| 在线观看一区视频| 欧美激情视频在线观看| 影音先锋在线视频| 欧美日韩加勒比精品一区| 日日碰狠狠躁久久躁婷婷| 日韩在线一二三区| 成人午夜黄色影院| 精品丝袜久久| 色妞久久福利网| 黄页在线观看免费| 欧美亚洲一区二区在线| 国产成人午夜精品| 国产女人aaa级久久久级| 韩国无码av片在线观看网站| 国产精品久久久久9999高清| 成人xvideos免费视频| 久久影院资源站| 欧美成人午夜激情视频| 24小时免费看片在线观看| 欧美网站大全在线观看| 国产女王在线**视频| 中文字幕不卡三区| 在线免费视频a| 久久亚洲精精品中文字幕早川悠里| 亚洲国产欧美不卡在线观看| 在线不卡视频| 91偷拍精品一区二区三区| 日韩精品免费| 国产精品欧美风情| 免费看成人哺乳视频网站| 欧美成人午夜影院| 久久久91麻豆精品国产一区| 精品国产一区二区三区在线观看| 日韩电影免费看| 日韩av在线免费观看| 欧美韩日亚洲| 精品久久久网站| 国内在线免费视频| 日韩免费一区二区| 青草在线视频在线观看| 亚洲电影在线看| 波多野结衣亚洲| 日韩在线视频一区| 亚洲精品黑牛一区二区三区| 98视频在线噜噜噜国产| 日韩在线麻豆| 国产色视频一区| 欧美a级片视频| 国产精品一码二码三码在线| 亚洲人成毛片在线播放女女| 色女人综合av| 99久久伊人精品| 国内外成人免费在线视频| 亚洲图片欧美视频| 91网在线播放| 亚洲欧美三级在线| 国产精品玖玖玖在线资源| 国产精品人成电影| 中国女人久久久| 中文字幕精品—区二区日日骚| 北条麻妃国产九九精品视频| www成人免费视频| 精品日韩中文字幕| av色综合久久天堂av色综合在| 亚洲精品mp4| 欧美影院在线| 亚洲自拍偷拍区| 捆绑调教一区二区三区| 国产1区2区在线| 天天色图综合网| heyzo高清在线| 欧美精品videosex牲欧美| 日本不卡免费一区| 亚洲成人午夜在线| 国产精品福利影院| 黄色网址在线免费| 九九久久国产精品| 欧美婷婷在线| 日日摸日日碰夜夜爽无码| 一区二区三区在线视频播放| 黄色视屏免费在线观看| 欧美国产亚洲精品久久久8v| 欧美午夜不卡| 欧美成人xxxxx| 欧美视频自拍偷拍| 精品久久免费| 成人福利在线视频| 国产成人午夜视频| 日韩av资源站| 久久福利视频导航| 香蕉久久夜色精品国产| www.xxx亚洲| 678五月天丁香亚洲综合网| 中文字幕视频精品一区二区三区| 国产精品99久久久久久久| 99久久久精品| 日本美女高清在线观看免费| 国内外成人免费激情在线视频网站| 亚洲欧美清纯在线制服| free性欧美1819hd| 亚洲人成绝费网站色www| 中文精品电影| 免费国产成人av| 精品成人一区二区| 欧美好骚综合网| 狠狠热免费视频| 精品国产自在久精品国产| 成人久久久久| 欧美一级黄色影院| 亚洲老板91色精品久久| 欧美日本不卡| 色婷婷综合久久久久久| 91视频国产一区| 日本一区二区三级电影在线观看| 国产剧情在线| 国产日韩欧美中文| 国产清纯美女被跳蛋高潮一区二区久久w| 国产区视频在线| 91精品国产九九九久久久亚洲| 国产在线日韩欧美| 伊人在线视频| 成人亚洲欧美一区二区三区| 国产婷婷色一区二区三区四区 | 亚洲av首页在线| 久久久久久久综合色一本| 7777精品久久久大香线蕉 | 三级精品视频| 免费免费啪视频在线观看| 国产伦一区二区三区色一情| 成人国内精品久久久久一区| 这里只有视频精品| 久久精品国产99国产精品| av在线免费播放网站| 亚洲精品久久区二区三区蜜桃臀 | 色网站国产精品| 国产精品久久三| 国产三级欧美三级日产三级99 | 国产一区二区在线观看视频| 欧美天堂社区| 人妻av无码专区| 亚洲成人在线观看视频| 伊人久久亚洲| 日韩avxxx| 中文字幕自拍vr一区二区三区| 久久天天综合| 嫩草香蕉在线91一二三区| 91精品久久久久久久久久入口| 综合中文字幕亚洲| 都市激情亚洲欧美| 91n.com在线观看| 九色91av视频| 日本一区二区三区四区在线视频| 日韩欧国产精品一区综合无码| 精品免费久久久久久久| 亚洲第一福利网站| 蜜臀av一区二区在线免费观看 | 日韩av在线免费| 天堂一区二区在线| 蜜臀av在线播放| 在线观看日韩片| 亚洲人成在线电影| 成人h动漫精品一区二区| 婷婷综合六月| 男人天堂999| **欧美日韩vr在线| 亚洲一区二区在线视频| 93在线视频精品免费观看| 理论视频在线| 欧美极品日韩| 亚洲国产欧美自拍| 99久久伊人网影院| 欧美亚洲色图校园春色| 1024在线视频| 精品综合久久久| 日韩av在线精品| 久久久久久99精品| 欧美系列电影免费观看 | 韩国三级电影久久久久久| 亚洲综合免费观看高清完整版在线| 神马电影久久| 国产理论电影在线观看| 日韩色妇久久av| 久色乳综合思思在线视频| 亚洲免费大片在线观看| 激情综合在线| 日本欧美不卡| 免费xxxxx网站中文字幕| 精品久久久久久乱码天堂| 亚洲老板91色精品久久| 中文一区二区完整视频在线观看| 影音先锋日韩在线| 日韩av电影资源网| 一二三在线视频社区|