目錄
一、背景
二、代碼實現
三、項目代碼
一、背景
競爭性自適應重加權算法(Competitive Adaptive Reweighted Sampling,CARS)是一種用于選擇高光譜數據中最具代表性波段的方法。CARS通過模擬“生物進化”過程,自適應地對光譜波段進行重加權和選擇,逐步淘汰冗余和不重要的波段。具體而言,CARS利用回歸系數的絕對值作為權重,通過迭代過程不斷調整和優化波段選擇,從而保留對模型預測最有貢獻的波段。該算法具有較好的穩定性和魯棒性,能夠顯著提高模型的預測性能,減少數據維度,降低計算復雜度,廣泛應用于化學計量學、食品檢測、環境監測等領域的光譜分析。
二、代碼實現
import pandas as pd
import numpy as np# 讀取數據
data = pd.read_csv("./data/peach_spectra_brix.csv")# 2. 數據處理
# m * n
print("數據矩陣 data.shape:",data.shape)# 50個樣本, 600個 波段 第一列是 桃子糖度值 需要分離開
X = data.values[:,1:]
# 等同操作
# X = data.drop(['Brix'], axis=1)y = data.values[:,0]
# 等同操作
# y = data.loc[:,'Brix'].values
print(f"X.shape:{X.shape}, y.shape:{y.shape}")# 3. 工具導入
import CARS# 4. 建模篩選
lis = CARS.CARS_Cloud(X,y)
print("獲取波段數:",len(lis))
print(lis)# # 5. 導出數據
X_ = X[:,lis]
最后返回被選擇波段的索引以為后續使用。
三、項目代碼
本項目的代碼通過以下鏈接下載:【光譜特征選擇】競爭性自適應重加權算法CARS(含python代碼)