代码记录
经过特征选择之后选出的特征,x矩阵是一个二进制矩阵,值为1表示选中该特征,值为0表示未选中。
将选择的特征提取出来之后,通过训练集和测试集对所选特征进行一个评估(所用分类器knn、svm、NB)。
#验证集预测值
def get_Pre(x): # x 为m*n的一个二进制矩阵数据,行为样本,列为特征
d_1 = sum(x == 1)
#print("选择特征数:",d_1)
# 从特征向量x中提取出相应的特征
Feature = np.zeros(d_1) # 数组Feature用来存 x选择的是哪d个特征
k = 0
for i in range(M):
if x[i] == 1:
Feature[k] = i # 选中的索引值
k += 1
#训练数据
select_feature_train = np.zeros((train_num, 1)) #train_num为训练集中样本个数
for i in range(d_1):
p = Feature[i]
p = p.astype(int)
q = X_train[:, p] # 取出所有样本的第p列(也就是选出那个特征列)
q = q.reshape(train_num, 1)
select_feature_train = np.append(select_feature_train, q, axis=1)
select_feature_train = np.delete(select_feature_train, 0, axis=1) # 删除第0列