冗余(代码冗余)

冗余 (代码冗余)
 
 
代码冗余,即是编程时不必要的代码段。
 
一般来说,一段程序能够执行既定的任务,但是经过优化,能够同样达到目的,而执行效率和代码数量减少了,说明删除的代码就是程序的冗余代码。
冗余代码主要分两部分:

1多余执行的冗余:编辑

如在某段程序的函数中,出现的语句,在对返回的参数没有任何的影响,但是又执行了多次,是为多余执行,此冗余是对cpu的消耗,应该杜绝该种冗余,应该注释掉。

2代码数量的冗余:编辑

主要是代码中太多的注释,或者一些没有使用到的变量,函数而存在程序中,这种冗余会让代码的可读性降低。

转载于:https://www.cnblogs.com/jsjblc/p/3567452.html

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
最大相关最小冗余(MROC)是一种在特征选择中常用到的算法。其目的是通过选择与目标变量最相关、但彼此之间冗余程度最小的特征子集,来减少特征维度并提高模型的性能。以下是使用Python实现MROC算法的简单示例代码: ```python import numpy as np def max_relevance_min_redundancy(X, y, k): n_features = X.shape[1] selected_features = [] selected_indices = [] # 计算每个特征与目标变量的相关性 relevances = np.zeros(n_features) for i in range(n_features): relevances[i] = np.corrcoef(X[:, i], y)[0, 1] # 选择相关性最大的特征子集 max_relevance_index = np.argmax(relevances) selected_features.append(X[:, max_relevance_index]) selected_indices.append(max_relevance_index) # 计算已选特征之间的冗余度 redundancies = np.zeros(n_features) for i in range(1, k): for j in range(n_features): if j not in selected_indices: feature_subset = np.column_stack(selected_features + [X[:, j]]) redundancies[j] = np.corrcoef(feature_subset.T)[k-1, k-1] # 选择冗余度最小的特征加入已选特征子集 min_redundancy_index = np.argmin(redundancies) selected_features.append(X[:, min_redundancy_index]) selected_indices.append(min_redundancy_index) return np.column_stack(selected_features) # 示例用法 X = [[1, 2, 3, 4], [2, 3, 4, 5], [3, 4, 5, 6], [4, 5, 6, 7]] y = [0, 1, 0, 1] k = 2 selected_features = max_relevance_min_redundancy(np.array(X), np.array(y), k) print(selected_features) ``` 这段代码实现了一个名为`max_relevance_min_redundancy`的函数,用于计算最大相关最小冗余特征子集。该函数的输入参数为特征矩阵`X`、目标变量向量`y`和选择的特征数`k`,输出为所选特征子集。 在函数内部,首先计算每个特征与目标变量的相关性,并选择相关性最大的特征加入已选特征子集。然后,循环k-1次,每次计算已选特征之间的冗余度,并选择冗余度最小的特征加入已选特征子集。最后,将所选特征子集合并为一个特征矩阵,并返回结果。 在示例中,特征矩阵X为一个4x4的二维数组,目标变量向量y为一个长度为4的一维数组,选择的特征数k为2。运行结果会打印出选取的特征子集。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值