曾經的我只知道,這台電腦缺一個好的顯卡;現在的我還知道,原來這台電腦還缺一個好的CPU。
——作者
一、算法
1.生成初始隨機解x
一個解x大概長這樣:[0,1,1,0,0,1,0,1,1,0,1]
1表示選擇這個特征,0表示不選擇這個特征
解的長度為特征的個數
初始化時0和1隨機選,生成一個隨機解
2.解對應的能量
E = 適應度 = 交叉驗證cross_val_score(解,y)的結果
3.生成新解
隨機選擇一個點取反
0變成1,1變成0
二、效果
沒有進行特征選擇時,交叉驗證的得分是0.6257839721254356
用模擬退火算法進行特征選擇:
三、逼逼幾句
這個空間復雜度沒有遺傳算法那么高,因為一次只有一個解,不像遺傳算法一次一個種群,好幾個染色體
但是時間復雜度也是好好好好高,運行的時候風扇呼呼轉,電量嘩嘩掉
更多:用遺傳算法進行特征選擇