拉普拉斯特征选择算法实现及可视化
导入必要的包
from lp_score import * import argparse as aP import numpy as np import time import matplotlib.pyplot as plt
定义命令行参数解析函数
def ArgumenParser(): parser = aP.ArgumentParser(description='解析命令行参数') parser.add_argument('-f', action="store", dest="DataSet" , default='IRIS.csv') # 数据集文件名,默认为IRIS.csv parser.add_argument('-k', action="store", dest="neighbour_size",type=int,default=16) # 邻居数,默认为16 parser.add_argument('-t', action="store", dest="t_param" , type =int,default=2) # t参数,默认为2 return parser.parse_args()
if name=='main': start_time=time.time() param=ArgumenParser() # 解析命令行参数 X=np.loadtxt(param.DataSet,delimiter=',') # 加载数据集 n_samples,n_feature=X.shape data=X[:,0:n_feature-1] # 获取特征数据
L=LaplacianScore(data,neighbour_size=param.neighbour_size,t_param=param.t_param) # 计算拉普拉斯得分
print ('拉普拉斯得分是:')
print (L) # 输出拉普拉斯得分
feature_rank = feature_ranking(L)
print ('特征重要性排序:')
print (feature_rank) # 输出特征排序结果
print ('运行时间:')
print('--- %s seconds ---' % (time.time() - start_time)) # 输出程序运行时间
# 绘制2D可视图
plt.figure(figsize=(10,6))
plt.bar(range(n_feature-1), L[feature_rank], color='b', align='center')
plt.xticks(range(n_feature-1), feature_rank)
plt.xlabel("Feature")
plt.ylabel("Laplacian Score")
plt.title("Feature Importance Ranking")
plt.show()
原文地址: https://www.cveoy.top/t/topic/ndPK 著作权归作者所有。请勿转载和采集!