mRMR特征選擇算法(feature_selection)的使用

源程序下載地址榆骚,本機電腦安裝java環(huán)境掸哑,具體環(huán)境安裝可自行百度获印,google.

用以實現用 mRMR 從特征集中提取特征的程序(python)

#inport neccesary bags

import csv#用來保存csv文件
import pandas as pd
import numpy as np
import re
import os#用來調用系統(tǒng)程序

#改變默認文件夾位置
os.chdir("XXX")
#input path name
datapath ="XXX"

#output path name
outputpath="XXX"
"""
    mrmr and svm
"""



#read csv data from path
train_data = pd.read_csv(datapath, header=None, index_col=None)
X = np.array(train_data)
Y = list(map(lambda x: 1, xrange(len(train_data) // 2)))
Y2 = list(map(lambda x: 0, xrange(len(train_data) // 2)))
Y.extend(Y2)
Y=np.array(Y)
Y=Y.reshape(2260,1)

#concatenate class and data
full_csv_with_class=np.concatenate([Y,X],axis=1)
print full_csv_with_class

#print the results of original csv data and final full data
print "the shape of data:"+str(X.shape)
print "the shape of data and class:"+str(full_csv_with_class.shape)

#generating virtual headers
columns=["class"]
columns_numbers=np.arange(full_csv_with_class.shape[1]-1)
columns.extend(columns_numbers)

# Write data into files
csvFile2 = open(outputpath,'w') 
writer = csv.writer(csvFile2)
m = len(full_csv_with_class)
writer.writerow(columns)
for i in range(m):
    writer.writerow(full_csv_with_class[i])
csvFile2.close()
[[ 1.     1.     1.    ...,  0.     1.     0.075]
 [ 1.     0.     0.    ...,  1.     1.     0.1  ]
 [ 1.     1.     0.    ...,  1.     0.     0.175]
 ..., 
 [ 0.     0.     0.    ...,  1.     1.     0.075]
 [ 0.     0.     0.    ...,  0.     1.     0.025]
 [ 0.     0.     0.    ...,  0.     1.     0.05 ]]
the shape of data:(2260, 200)
the shape of data and class:(2260, 201)
os.system("./mRMR/mrmr -i "+outputpath+" -n 200 >mRMR/output.mrmrout")
print "complete "
complete 
#讀取文件

fn=open("mRMR/output.mrmrout",'r')
location_mark=0
final_set=[]
for line in fn.readlines():
    if line.strip() =="":
        location_mark=0
    if location_mark==1 and line.split()[1]!="Fea":
         final_set.append(int(line.split()[1]))
    if re.findall(r"mRMR",line) and re.findall(r"feature",line):
        location_mark=1
print final_set
[133, 135, 140, 130, 145, 110, 115, 105, 120, 125, 150, 102, 185, 190, 180, 195, 100, 160, 165, 155, 170, 175, 101, 5, 85, 95, 98, 90, 99, 200, 177, 33, 50, 14, 8, 149, 109, 94, 121, 134, 113, 84, 21, 156, 71, 31, 6, 59, 189, 158, 122, 176, 58, 46, 64, 188, 10, 1, 38, 184, 19, 138, 2, 159, 81, 181, 44, 199, 26, 63, 82, 45, 148, 114, 172, 183, 32, 7, 48, 131, 146, 163, 83, 39, 49, 171, 80, 132, 197, 77, 88, 56, 9, 157, 198, 75, 164, 147, 70, 76, 196, 27, 182, 25, 96, 127, 13, 57, 126, 65, 107, 34, 108, 60, 139, 69, 55, 89, 30, 35, 40, 106, 20, 15, 104, 97, 111, 18, 103, 41, 78, 116, 61, 192, 3, 43, 67, 23, 118, 191, 4, 11, 194, 119, 66, 17, 87, 137, 136, 167, 141, 53, 117, 154, 28, 86, 42, 151, 52, 74, 68, 193, 51, 22, 179, 153, 62, 186, 152, 169, 12, 161, 129, 112, 166, 93, 47, 79, 162, 128, 29, 16, 143, 36, 187, 168, 144, 73, 124, 91, 54, 174, 178, 24, 173, 37, 142, 72, 123, 92]
precision_copy=0
recall_copy=0
SN_copy=0
SP_copy=0
GM_copy=0
TP_copy=0
TN_copy=0
FP_copy=0
FN_copy=0
ACC_copy=0
F1_Score_copy=0
F_measure_copy=0
MCC_copy=0
pos_copy=0
neg_copy=0
y_pred_prob_copy=[]
y_pred_copy=[]

關鍵語句:
os.system("./mRMR/mrmr -i "+outputpath+" -n 200 >mRMR/output.mrmrout")

  • ./mRMR/mrmr代表執(zhí)行程序杆怕,也即最上面github里面下載的
  • -i outputpath代表輸出的csv地址糠溜,也即原始特診集合(一下會說明)
  • -n 200代表選取200維度笤虫,一次從得分排列
  • mRMR/output.mrmrout代表輸出的文件(文件情況如下)


    aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTgwMzIzMDkzNTQ5MDI4.png

csv格式需要特別說明旁瘫,分類的類別需要在第一行,同時必須要有columns的標簽(class一行必須有)

aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTgwMzIzMDk0MDIzODY5.png

    [133, 135, 140, 130, 145, 110, 115, 105, 120, 125, 150, 102, 185, 190, 180, 195, 100, 160, 165, 155, 170, 175, 101, 5, 85, 95, 98, 90, 99, 200, 177, 33, 50, 14, 8, 149, 109, 94, 121, 134, 113, 84, 21, 156, 71, 31, 6, 59, 189, 158, 122, 176, 58, 46, 64, 188, 10, 1, 38, 184, 19, 138, 2, 159, 81, 181, 44, 199, 26, 63, 82, 45, 148, 114, 172, 183, 32, 7, 48, 131, 146, 163, 83, 39, 49, 171, 80, 132, 197, 77, 88, 56, 9, 157, 198, 75, 164, 147, 70, 76, 196, 27, 182, 25, 96, 127, 13, 57, 126, 65, 107, 34, 108, 60, 139, 69, 55, 89, 30, 35, 40, 106, 20, 15, 104, 97, 111, 18, 103, 41, 78, 116, 61, 192, 3, 43, 67, 23, 118, 191, 4, 11, 194, 119, 66, 17, 87, 137, 136, 167, 141, 53, 117, 154, 28, 86, 42, 151, 52, 74, 68, 193, 51, 22, 179, 153, 62, 186, 152, 169, 12, 161, 129, 112, 166, 93, 47, 79, 162, 128, 29, 16, 143, 36, 187, 168, 144, 73, 124, 91, 54, 174, 178, 24, 173, 37, 142, 72, 123, 92]

這些數字是從mRMR/output.mrmrout里面提取出來的特征維度的排序
讀者可根據這些排序的維度逐漸提取以尋找最優(yōu)的維度集合琼蚯。

重申mrmr程序和特征提取程序地址

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末酬凳,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子遭庶,更是在濱河造成了極大的恐慌宁仔,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件峦睡,死亡現場離奇詭異翎苫,居然都是意外死亡,警方通過查閱死者的電腦和手機榨了,發(fā)現死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門煎谍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人龙屉,你說我怎么就攤上這事呐粘÷祝” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵作岖,是天一觀的道長唆垃。 經常有香客問我,道長痘儡,這世上最難降的妖魔是什么辕万? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮沉删,結果婚禮上渐尿,老公的妹妹穿的比我還像新娘。我一直安慰自己丑念,他們只是感情好涡戳,可當我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著脯倚,像睡著了一般渔彰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上推正,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天恍涂,我揣著相機與錄音,去河邊找鬼植榕。 笑死再沧,一個胖子當著我的面吹牛,可吹牛的內容都是我干的尊残。 我是一名探鬼主播炒瘸,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼寝衫!你這毒婦竟也來了顷扩?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤慰毅,失蹤者是張志新(化名)和其女友劉穎隘截,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體汹胃,經...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡婶芭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了着饥。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片犀农。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖宰掉,靈堂內的尸體忽然破棺而出井赌,到底是詐尸還是另有隱情谤逼,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布仇穗,位于F島的核電站,受9級特大地震影響戚绕,放射性物質發(fā)生泄漏纹坐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一舞丛、第九天 我趴在偏房一處隱蔽的房頂上張望耘子。 院中可真熱鬧,春花似錦球切、人聲如沸谷誓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽捍歪。三九已至,卻和暖如春鸵钝,著一層夾襖步出監(jiān)牢的瞬間糙臼,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工恩商, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留变逃,地道東北人。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓怠堪,卻偏偏與公主長得像揽乱,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子粟矿,可洞房花燭夜當晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內容

  • 首頁 資訊 文章 資源 小組 相親 登錄 注冊 首頁 最新文章 IT 職場 前端 后端 移動端 數據庫 運維 其他...
    Helen_Cat閱讀 3,849評論 1 10
  • 官網原文:本章原文 建議打開原版對照著英文版同時閱讀。官網原文:在git上閱讀 建議打開原版對照著英文版同時閱讀嚷炉。...
    阿龍學區(qū)塊鏈閱讀 1,036評論 0 2
  • Tutorial - 1 (a) 為什么e時代需要生物特征識別我們在信息時代面臨諸多問題渊啰,如病毒、黑客申屹、計算機盜竊...
    ShellyWhen閱讀 2,196評論 0 4
  • 開工大吉,2018旺年旺的不行 2017年遇見了美好杆煞,在2017年4月魏宽,曾經的客戶腐泻,現在的好朋友金子,和MARY第...
    色拉旺姆閱讀 316評論 2 4
  • 今早習慣性的打開簡書队询,看到簡書后臺給我的一條消息告訴我今天是我來簡書一周年派桩。 恍惚間,我來簡書竟然一年了蚌斩,而我只寫...
    夕拾艾草閱讀 1,562評論 38 34