请问有关这个 feature_len_dict 变量的信息是什么?
时间: 2023-08-21 16:01:52 浏览: 45
这个 feature_len_dict 变量是一个字典,它的键是一个字符串 'SleePyCo',值是一个嵌套的列表。这个列表有 10 个元素,每个元素都是一个包含 3 个整数的列表。每个小列表中三个整数分别表示一个特征在不同情况下的长度,例如第一个小列表 [5, 24, 120] 表示当某个特征的取值为 0、1、2、3、4 时长度分别为 5、24、120。
相关问题
if not os.path.exists('model/easy_feature_select.csv'): df_importances = df_importances[:150] df_importances.to_csv('model/easy_feature_select.csv', encoding='gbk', index=False) # 根据筛选后的特征重新加载数据 x_train, x_test, y_train, y_test, df_ft = set_data(df_0, df_1, df_9, cfg_dict) # 相关系数,补充未被筛选为重要特征但与重要特征相关性较大的其他特征 feature_list = x_train.columns.tolist() df_corr = x_train.corr() df_corr = df_corr.replace(1, 0) # 筛选出相关系数大于0.85的特征 for i in range(len(df_corr.columns)): if i >= len(df_corr.columns): break column = df_corr.columns[i] names = df_corr[abs(df_corr[column]) >= 0.85].index.tolist() if names: print(column, '的强相关特征:', names) feature_list = [i for i in feature_list if i not in names] df_corr = x_train[feature_list].corr() continue #feature_list = list(set(feature_list + ['呼叫次数', '入网时长(月)', # 'MOU_avg', 'DOU_avg', '省外流量占比_avg'])) df_feature = pd.DataFrame(feature_list, columns=['features']) df_importances = pd.merge(df_feature, df_importances, on='features', how='left') df_importances.to_csv('model/easy_feature_select.csv', encoding='gbk', index=False) # 根据筛选后的特征重新加载数据 x_train, x_test, y_train, y_test, df_ft = set_data(df_0, df_1, df_9, cfg_dict) # 重新训练 bst = fit(cfg_dict, x_train, y_train, x_test, y_test) df_importances = feature_imp(model=bst, x_train=x_train, plot=True) df_importances.to_csv('model/easy_feature_select.csv', encoding='gbk', index=False) # 根据重新排序的特征训练模型 x_train, x_test, y_train, y_test, df_ft = set_data(df_0, df_1, df_9, cfg_dict) bst = fit(cfg_dict, x_train, y_train, x_test, y_test)
这段代码用于特征选择和重新训练模型的过程。
首先,代码通过判断是否存在 'model/easy_feature_select.csv' 文件来判断是否需要进行特征选择。如果文件不存在,则进行特征选择的步骤。
在特征选择的过程中,首先将 df_importances 数据框的前150个特征保存到 'model/easy_feature_select.csv' 文件中,然后重新加载数据,获取新的训练集和测试集。
接着,计算特征之间的相关系数,并筛选出相关系数大于0.85的特征。如果存在相关系数大于0.85的特征,则将这些特征从特征列表 feature_list 中移除,并重新计算相关系数。
然后,将筛选后的特征列表 feature_list 和 df_importances 数据框进行合并,并将合并结果保存到 'model/easy_feature_select.csv' 文件中。再次重新加载数据,获取新的训练集和测试集。
接下来,重新训练模型,并将训练好的模型保存到 bst 变量中。然后,通过调用 feature_imp 函数获取新模型的特征重要性信息,并将其保存到 'model/easy_feature_select.csv' 文件中。
最后,再次重新加载数据,获取新的训练集和测试集。重新训练模型,并将训练好的模型保存到 bst 变量中。
这段代码的作用是进行特征选择和重新训练模型的过程。在特征选择中,通过计算特征之间的相关系数,筛选出与重要特征相关性较大的其他特征,并将这些特征从特征列表中移除。然后,重新训练模型,并保存新模型的特征重要性信息。最后,再次重新加载数据,重新训练模型。
下面这段代码的作用是什么class CasSeqGCNTrainer(object): def __init__(self, args): self.args = args self.setup_model() def enumerate_unique_labels_and_targets(self): """ Enumerating the features and targets. """ print("\nEnumerating feature and target values.\n") #枚举数据集 ending = "*.json" self.graph_paths = sorted(glob.glob(self.args.graph_folder + ending), key = os.path.getmtime)#获取self.args.graph_folder目录下所有的json文件 features = set() data_dict = dict() for path in tqdm(self.graph_paths):#加载所有的json文件,将数据存储在上面的features和data_dict中 data = json.load(open(path)) data_dict = data for i in range(0, len(data) - self.args.sub_size): graph_num = 'graph_' + str(i) features = features.union(set(data[graph_num]['labels'].values())) self.number_of_nodes = self.args.number_of_nodes self.feature_map = utils.create_numeric_mapping(features) #依赖的其他文件提供的能力,看上去是将数据集根据特性进行整理 self.number_of_features = len(self.feature_map)#将特性的map的长度赋值给特性数量
这段代码定义了一个名为 CasSeqGCNTrainer 的类,它包含了初始化函数 __init__(self, args) 和一个枚举数据集的函数 enumerate_unique_labels_and_targets(self)。其中,初始化函数接收一个参数 args,表示训练器的一些配置参数;setup_model() 方法用于构建模型。而枚举数据集的函数则用于加载数据集,将数据存储在 data_dict 中,并枚举所有数据中出现的特征(features)和目标(targets)。最终,该类还定义了两个实例变量:number_of_nodes 表示节点数量,feature_map 是一个字典,用于将特征映射到数字编号。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)