精华内容
下载资源
问答
  • 基于遗传算法的特征选择汇总,遗传算法特征选择,遗传算法特征选择代码,遗传算法特征提取,遗传算法筛选特征变量,遗传算法选择算子,遗传算法赌轮选择法,遗传算法选择,遗传算法选择操作,遗传算法参数选择(a) 选择...

    基于遗传算法的特征选择汇总,遗传算法特征选择,遗传算法特征选择代码,遗传算法特征提取,遗传算法筛选特征变量,遗传算法选择算子,遗传算法赌轮选择法,遗传算法选择,遗传算法选择操作,遗传算法参数选择

    (a) 选择(Selection)算子 依据每个染色体的适应值大小,适应值越大,被选中的概率就越大,其子孙在下一代产生的个数就越多。 选择操作是建立在群体中个体的适应值评估基础上的,目前常用的选择算子有赌轮选择方法、保留最佳个体选择法、期望值选择方法等。 College of Mathematics and Computer Science 基于遗传算法的特征选择 What Why How 回答什么是遗传算法?什么是特征选择? 遗传算法是模拟进化论,搜索优化问题最优解的一种算法。它采用群体搜索策略,一代一代逐步进化,直到收敛到问题的最优解。 群体是个体的集合,个体模拟一个问题的一个解。 关键问题: 个体如何表示? 方法:问题编码 如何产生下一代? 方法:遗传操作 如何评价种群的质量? 方法:适应度函数 What 什么是特征选择? 就是从一个特征集合中选择一个最优子集。 遗传算法流程图 How 1. 问题编码 对于特征选择问题,问题编码很简单,采用0-1编码即可。 任何一个n元0-1串,都表示问题的一个解。 2. 如何产生下一代 通过选择、交叉、变异三种遗传操作产生下一代,前两种操作每一次都要用的,而第三种则不一定,但没有规则。 选择是用来选择交叉的父本,交叉(模拟有性繁殖)产生新的个体,变异是某一位的变异。 3.如何评价种群的质量 适应度函数设计,对于特征选择问题可采用如下的类别可分离性准则,设计适应度函数。 适应度函数为 需要注意的是这种适应度函数,只适用于连续值数据库的情况。下面如何计算? Iris数据库 选择的特征子集应使类内散度尽可能小,而使类间散度尽可能大. 设xk(i)和xl(j)分别为?i类和?j类中的D维特征向量,?(xk(i) , xk(j))为这两个向量间的距离,则类间平均距离为: 其中,Pi和Pj为先验概率。 通常采用欧氏距离: JD称为各类之间的平均平方距离。 定义 类均值向量为和总均值向量分别为: 和 定义 类间散度矩阵Sb的估计为: 定义 类内散度矩阵Sw的估计为: 其中,?i为类协方差矩阵。 其他需要说明的问题还有: Q1 初始种群的产生 主要涉及到:(1)群体的规模N;(2)初始化种群。 种群的规模 N越大,种群的多样性越好,GA陷入局部极小的可能性越小。但N太大,计算量会很大,收敛速度也会降低。N太小,GA搜索的空间被限制在一个较小的范围内,可能导致早熟。 应根据问题的维数和难度来设定N,一般地,维数和难度越高,N应越大。建议N一般取为几十到几百之间。 初始化种群 一般用随机化方法产生。 (a.1) 赌轮方法 (准备步) (S1) 按如下公式计算种群中每个个体xi被选择的概率。 (E3) (S2) 按如下公式计算种群中每个个体xi的累加概率。 (E4) (选择步) 根据选择概率,将圆盘形的赌轮分成N个扇形,第i个扇形的中心角为2?pi。在进行选择时,可以假想随机转到一下赌轮,若参照点落入第r个扇形内,则选择xr,这样重复选择N次即可。 上述方法可用如下计算机方法模拟。将[0, 1]区间分成长度为p1, p2, …, pN的小区间。按均匀分布在[0, 1]中产生一个随机数,这个数属于哪个小区间,就选出对应的个体。如此重复N次即可。 具体步骤如下: 赌轮方法选择步骤 STEP1:按公式(E4)计算累加概率。 STEP2:重复以下两步N次 STEP2.1:产生[0, 1]中的一个随机数r; STEP2.2:若r?q1,则选择x1;否则,若qi-1?r?qi,则选择xi。 (a.2) 保留最佳个体选择方法 将到目前为止,得到的M个最佳个体直接保留到下一代种群中,其余N-M个个体可按其他方法选择产生。 (a.3) 期望值选择方法 在赌轮选择方法中,当种群规模不大时,产生的随机数可能并不能代表其随机变量的真正分布情况。这样,在选择时,可能适应度值大的个体被淘汰,而适应度值小的个体反而被选上。为了克服这种缺点,提出了期望值方法。 期望值方法选择步骤 STEP1:按下式计算每个个体在下一代生存的期望个数。 (E5) STEP2:若某个个体被选择,则Mi=Mi-0.5;否则,Mi=Mi-1。 STEP3:将第i个个体复制[Mi]份,小数部分作为选择的概率,再参加选择,看第i个个体是否能再次被选中。 STEP4:一旦一个个体的生存期望个数降低到小于等于0,则该个体不再参加选择(被淘汰)。 (b) 交叉(Crossover)算子 以概率pc选择参与交叉的个体,并将选出的个体两两配对。每一对用单点交叉或两点交叉产生两个后代。如有两个用二进制编码的个体A和B。 交叉前后为: A=a1a2a3|a4a5

    展开全文
  • 目录1 遗传算法特征选取基本原理遗传算法特征选择的基本原理是用遗传算法寻找一个最优的二进制编码, 码中的每一位对应一个特征, 若第i位为“1”, 则表明对应特征被选取, 该特征将出现在估计器中, 为“0”, 则表明...

    目录

    1 遗传算法特征选取基本原理

    遗传算法特征选择的基本原理是用遗传算法寻找一个最优的二进制编码, 码中的每一位对应一个特征, 若第i位为“1”, 则表明对应特征被选取, 该特征将出现在估计器中, 为“0”, 则表明对应特征未被选取,该特征将不出现在分类器中。其基本步骤为:

    (1) 编码。采用二进制编码方法, 二进制码的每一位的值, “0”表示特征未被选中;“1”表示特征被选中。

    (2) 初始群体的生成。随机产生N个初始串构成初始种群, 通常种群数确定为50~100。

    (3) 适应度函数。适应度函数表明个体或解的优劣性。针对特征选取问题, 适应度函数的构造非常重要, 它主要依据类别的可分性判据以及特征的分类能力。

    (4) 将适应度最大的个体, 即种群中最好的个体无条件地复制到下一代新种群中, 然后对父代种群进行选择、交叉和变异等遗传算子运算, 从而繁殖出下一代新种群其它n-1个基因串。通常采用转轮法作为选取方法, 适应度大的基因串选择的机会大, 从而被遗传到下一代的机会大, 相反, 适应度小的基因串选择的机会小, 从而被淘汰的机率大。交叉和变异是产生新个体的遗传算子, 交叉率太大, 将使高适应度的基因串结构很快被破坏掉, 太小则使搜索停止不前, 一般取为0.5~0.9。变异率太大, 将使遗传算法变为随机搜索, 太小则不会产生新个体, 一般取为0.01~0.1。

    (5) 如果达到设定的繁衍代数, 返回最好的基因串, 并将其作为特征选取的依据, 算法结束。否则, 回到 (4) 继续下一代的繁衍。

    2. 适应度函数选择和环境要求

    (1)适应度函数选择

    可以参考scikitlearn库的model evaluation的分类指标和回归指标,本手稿选取mean_squared_error指标

    以下有很多指标可以选择

    SCORERS = dict(explained_variance=explained_variance_scorer,

    r2=r2_scorer,

    max_error=max_error_scorer,

    neg_median_absolute_error=neg_median_absolute_error_scorer,

    neg_mean_absolute_error=neg_mean_absolute_error_scorer,

    neg_mean_squared_error=neg_mean_squared_error_scorer,

    neg_mean_squared_log_error=neg_mean_squared_log_error_scorer,

    accuracy=accuracy_scorer, roc_auc=roc_auc_scorer,

    balanced_accuracy=balanced_accuracy_scorer,

    average_precision=average_precision_scorer,

    neg_log_loss=neg_log_loss_scorer,

    brier_score_loss=brier_score_loss_scorer,

    # Cluster metrics that use supervised evaluation

    adjusted_rand_score=adjusted_rand_scorer,

    homogeneity_score=homogeneity_scorer,

    completeness_score=completeness_scorer,

    v_measure_score=v_measure_scorer,

    mutual_info_score=mutual_info_scorer,

    adjusted_mutual_info_score=adjusted_mutual_info_scorer,

    normalized_mutual_info_score=normalized_mutual_info_scorer,

    fowlkes_mallows_score=fowlkes_mallows_scorer)

    (2)依赖的第三方工具包

    遗传算法工具包:sklearn-genetic

    python第三方工具包:scikitlearn、numpy、scipy、matplotlib

    3. python实现

    from __future__ import print_function

    from genetic_selection import GeneticSelectionCV

    import numpy as np

    from sklearn.neural_network import MLPRegressor

    import scipy.io as sio

    from sklearn.model_selection import train_test_split

    from sklearn.preprocessing import StandardScaler

    from sklearn.metrics import r2_score, mean_squared_error

    import matplotlib.pyplot as plt

    def main():

    # 1.数据获取

    mat = sio.loadmat('NDFNDF_smote.mat')

    data = mat['NDFNDF_smote']

    x, y = data[:, :1050], data[:, 1050]

    print(x.shape, y.shape)

    # 2.样本集划分和预处理

    x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=1)

    x_scale, y_scale = StandardScaler(), StandardScaler()

    x_train_scaled = x_scale.fit_transform(x_train)

    x_test_scaled = x_scale.transform(x_test)

    y_train_scaled = y_scale.fit_transform(y_train.reshape(-1, 1))

    y_test_scaled = y_scale.transform(y_test.reshape(-1, 1))

    print(x_train_scaled.shape, y_train_scaled.shape)

    print(x_test_scaled.shape, y_test_scaled.shape)

    # 3. 优化超参数

    base, size = 30, 21

    wavelengths_save, wavelengths_size, r2_test_save, mse_test_save = [], [], [], []

    for hidden_size in range(base, base+size):

    print('隐含层神经元数量: ', hidden_size)

    estimator = MLPRegressor(hidden_layer_sizes=hidden_size,

    activation='relu',

    solver='adam',

    alpha=0.0001,

    batch_size='auto',

    learning_rate='constant',

    learning_rate_init=0.001,

    power_t=0.5,

    max_iter=1000,

    shuffle=True,

    random_state=1,

    tol=0.0001,

    verbose=False,

    warm_start=False,

    momentum=0.9,

    nesterovs_momentum=True,

    early_stopping=False,

    validation_fraction=0.1,

    beta_1=0.9, beta_2=0.999,

    epsilon=1e-08)

    selector = GeneticSelectionCV(estimator,

    cv=5,

    verbose=1,

    scoring="neg_mean_squared_error",

    max_features=5,

    n_population=200,

    crossover_proba=0.5,

    mutation_proba=0.2,

    n_generations=200,

    crossover_independent_proba=0.5,

    mutation_independent_proba=0.05,

    tournament_size=3,

    n_gen_no_change=10,

    caching=True,

    n_jobs=-1)

    selector = selector.fit(x_train_scaled, y_train_scaled.ravel())

    print('有效变量的数量:', selector.n_features_)

    print(np.array(selector.population_).shape)

    print(selector.generation_scores_)

    x_train_s, x_test_s = x_train_scaled[:, selector.support_], x_test_scaled[:, selector.support_]

    estimator.fit(x_train_s, y_train_scaled.ravel())

    # y_train_pred = estimator.predict(x_train_s)

    y_test_pred = estimator.predict(x_test_s)

    # y_train_pred = y_scale.inverse_transform(y_train_pred)

    y_test_pred = y_scale.inverse_transform(y_test_pred)

    r2_test = r2_score(y_test, y_test_pred)

    mse_test = mean_squared_error(y_test, y_test_pred)

    wavelengths_save.append(list(selector.support_))

    wavelengths_size.append(selector.n_features_)

    r2_test_save.append(r2_test)

    mse_test_save.append(mse_test)

    print('决定系数:', r2_test, '均方误差:', mse_test)

    print('有效变量数量', wavelengths_size)

    # 4.保存过程数据

    dict_name = {'wavelengths_size': wavelengths_size, 'r2_test_save': r2_test_save,

    'mse_test_save': mse_test_save, 'wavelengths_save': wavelengths_save}

    f = open('bpnn_ga.txt', 'w')

    f.write(str(dict_name))

    f.close()

    # 5.绘制曲线

    plt.figure(figsize=(6, 4), dpi=300)

    fonts = 8

    xx = np.arange(base, base+size)

    plt.plot(xx, r2_test_save, color='r', linewidth=2, label='r2')

    plt.plot(xx, mse_test_save, color='k', linewidth=2, label='mse')

    plt.xlabel('generation', fontsize=fonts)

    plt.ylabel('accuracy', fontsize=fonts)

    plt.grid(True)

    plt.legend(fontsize=fonts)

    plt.tight_layout(pad=0.3)

    plt.show()

    if __name__ == "__main__":

    main()

    标签:特征选择,python,train,scorer,error,test,遗传算法,save,size

    来源: https://blog.csdn.net/Joseph__Lagrange/article/details/94451214

    展开全文
  • 初始化种群一个种群有好几条染色体一条染色体大概长这样:[0,1,1,0,0,1,0,1,1,0,1]1表示选择这个特征,0表示不选择这个特征染色体的长度为特征的个数初始化时0和1随机选,生成一个个染色体2.评估种群中个体适应度用...

    曾经的我只知道,这台电脑缺一个好的显卡;现在的我还知道,原来这台电脑还缺一个好的CPU。

    ——作者

    一、算法

    1.初始化种群

    一个种群有好几条染色体

    一条染色体大概长这样:[0,1,1,0,0,1,0,1,1,0,1]

    1表示选择这个特征,0表示不选择这个特征

    染色体的长度为特征的个数

    初始化时0和1随机选,生成一个个染色体

    2.评估种群中个体适应度

    用交叉验证cross_val_score(个体,y)的结果作为适应度

    3.选择

    每条染色体的适应度不同,被选择的概率不同

    用轮盘赌选择

    先生成与染色体个数(种群大小)相同的随机数

    然后再一个个看这些随机数落在哪个染色体的范围内

    例:

    染色体的选择概率:①[0,0.3), ②[0.3,0.6), ③[0.6,0.7), ④[0.7,0.9), ⑤[0.9,1]

    生成的随机数:0.2, 0.4, 0.5, 0.78, 0.8

    被选中的染色体:①, ②, ②, ④, ④

    4.交叉

    若第i条与第i+1条染色体发生交叉

    随机选择交叉点,然后交叉

    例:

    第6条与第7条染色体发生交叉

    第6条染色体:[1,0,0,1,0]

    第7条染色体:[\(\color{red}{0}\),\(\color{red}{1}\),\(\color{red}{0}\),\(\color{red}{1}\),\(\color{red}{1}\)]

    随机选择交叉点3

    第6条染色体:[1,0,0,\(\color{red}{1}\),\(\color{red}{1}\)]

    第7条染色体:[\(\color{red}{0}\),\(\color{red}{1}\),\(\color{red}{0}\),1,0]

    5.变异

    若第i条染色体发生变异

    随机选择一个变异点,然后取反

    0变1,1变0

    二、效果

    没有进行特征选择时,交叉验证的得分是0.6257839721254356

    用遗传算法进行特征选择:

    前面几条输出:

    0

    [0, [1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1], 0.6919860627177701]

    1

    [1, [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0], 0.7265969802555168]

    2

    [2, [1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0], 0.7225319396051104]

    3

    [3, [0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0], 0.7170731707317073]

    4

    [4, [1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0], 0.7176538908246226]

    最后几条输出:

    94

    [94, [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0], 0.7746806039488966]

    95

    [95, [0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0], 0.7601626016260162]

    96

    [96, [0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0], 0.7698025551684088]

    97

    [97, [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0], 0.7507549361207898]

    98

    [98, [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0], 0.7600464576074332]

    99

    [99, [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0], 0.7555168408826946]

    三、逼逼几句

    这个时间复杂度和空间复杂度好好好好高,运行的时候风扇呼呼转,电量哗哗掉

    更多:用模拟退火算法进行特征选择

    展开全文
  • I have data set n x m where there are n observations and each observation consists of m values for m attributes. Each observation has also observed result assigned to it. m is big, too big for my task...

    I have data set n x m where there are n observations and each observation consists of m values for m attributes. Each observation has also observed result assigned to it. m is big, too big for my task. I am trying to find a best and smallest subset of m attributes that still represents the whole dataset quite well, so that I could use only these attributes for teaching a neural network.

    I want to use genetic algorithm for this. The problem is the fittness function. It should tell how well the generated model (subset of attributes) still reflects the original data. And I don't know how to evaluate certain subset of attributes against the whole set.

    Of course I could use the neural network(that will later use this selected data anyway) for checking how good the subset is - the smaller the error, the better the subset. BUT, this takes a looot of time in my case and I do not want to use this solution. I am looking for some other way that would preferably operate only on the data set.

    What I thought about was: having subset S (found by genetic algorithm), trim data set so that it contains values only for subset S and check how many observations in this data ser are no longer distinguishable (have same values for same attributes) while having different result values. The bigger the number is, the worse subset it is. But this seems to me like a bit too computationally exhausting.

    Are there any other ways to evaluate how well a subset of attributes still represents the whole data set?

    解决方案

    This cost function should do what you want: sum the factor loadings that correspond to the features comprising each subset.

    The higher that sum, the greater the share of variability in the response variable that is explained with just those features. If i understand the OP, this cost function is a faithful translation of "represents the whole set quite well" from the OP.

    Reducing to code is straightforward:

    Calculate the covariance matrix of your dataset (first remove the

    column that holds the response variable, i.e., probably the last

    one). If your dataset is m x n (columns x rows), then this

    covariance matrix will be n x n, with "1"s down the main diagonal.

    Next, perform an eigenvalue decomposition on this covariance

    matrix; this will give you the proportion of the total variability

    in the response variable, contributed by that eigenvalue (each

    eigenvalue corresponds to a feature, or column). [Note,

    singular-value decomposition (SVD) is often used for this step, but

    it's unnecessary--an eigenvalue decomposition is much simpler, and

    always does the job as long as your matrix is square, which

    covariance matrices always are].

    Your genetic algorithm will, at each iteration, return a set of

    candidate solutions (features subsets, in your case). The next task

    in GA, or any combinatorial optimization, is to rank those candiate

    solutions by their cost function score. In your case, the cost

    function is a simple summation of the eigenvalue proportion for each

    feature in that subset. (I guess you would want to scale/normalize

    that calculation so that the higher numbers are the least fit

    though.)

    A sample calculation (using python + NumPy):

    >>> # there are many ways to do an eigenvalue decomp, this is just one way

    >>> import numpy as NP

    >>> import numpy.linalg as LA

    >>> # calculate covariance matrix of the data set (leaving out response variable column)

    >>> C = NP.corrcoef(d3, rowvar=0)

    >>> C.shape

    (4, 4)

    >>> C

    array([[ 1. , -0.11, 0.87, 0.82],

    [-0.11, 1. , -0.42, -0.36],

    [ 0.87, -0.42, 1. , 0.96],

    [ 0.82, -0.36, 0.96, 1. ]])

    >>> # now calculate eigenvalues & eivenvectors of the covariance matrix:

    >>> eva, evc = LA.eig(C)

    >>> # now just get value proprtions of each eigenvalue:

    >>> # first, sort the eigenvalues, highest to lowest:

    >>> eva1 = NP.sort(eva)[::-1]

    >>> # get value proportion of each eigenvalue:

    >>> eva2 = NP.cumsum(eva1/NP.sum(eva1)) # "cumsum" is just cumulative sum

    >>> title1 = "ev value proportion"

    >>> print( "{0}".format("-"*len(title1)) )

    -------------------

    >>> for row in q :

    print("{0:1d} {1:3f} {2:3f}".format(int(row[0]), row[1], row[2]))

    ev value proportion

    1 2.91 0.727

    2 0.92 0.953

    3 0.14 0.995

    4 0.02 1.000

    so it's the third column of values just above (one for each feature) that are summed (selectively, depending on which features are present in a given subset you are evaluating with the cost function).

    展开全文
  • 特征选择最直观的原因是避免维度灾难,维度太多对算法运算速度、可解释性等方面都带来很多影响;其次就是特征少便于进行可视化,进而利于模型选择;最后,维度太多必然带来很多噪音,这对我们建立模型是非常不利的。...
  • 遗传算法特征选择,SVM分类 # -*- coding: utf-8 -*- """ Created on Mon Nov 16 17:51:47 2020 @author: Jiaqingwang """ import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn....
  • python实现1 遗传算法特征选取基本原理遗传算法特征选择的基本原理是用遗传算法寻找一个最优的二进制编码, 码中的每一位对应一个特征, 若第i位为“1”, 则表明对应特征被选取, 该特征将出现在估计器中, 为“0”, 则...
  • 遗传算法特征选择的python实现

    千次阅读 热门讨论 2019-07-02 16:43:39
    遗传算法特征选择的基本原理是用遗传算法寻找一个最优的二进制编码, 码中的每一位对应一个特征, 若第i位为“1”, 则表明对应特征被选取, 该特征将出现在估计器中, 为“0”, 则表明对应特征未被选取,该特征将不出现在...
  • 遗传算法进行特征选择

    万次阅读 热门讨论 2019-01-20 21:57:27
    文章目录一、问题举例二、算法描述1、基于类内类间距离的可分性判据2、遗传算法(Genetic Algorithm)1) 初始化种群2)计算当前种群 M(t)中每条染色体的适应度值 f(m)3)基于适应度值的选择4)交叉5)变异6)...
  • 遗传算法-特征选择-6

    2011-04-27 15:35:40
    提出了基于遗传算法特征选择方法。介绍了遗传算法的基本 原理,阐述并设计了适应度函数和遗传算子。
  • 采用基于遗传算法(GA)的二维主成分分析法(2DPCA)进行人脸识别。2DPCA 直接以二维图像矩阵为研究对象,以其 协方差矩阵的特征向量为投影轴进行特征提取。
  • 遗传算法寻优 cross_val_score(lgb,train_X,train_y,scoring='f1',cv=sKfold).mean() # 使用全部特征进行训练 0.8508040614085857 train_1 = train.drop('label',1) cols = train_1.columns train_1.head() ...
  • 基于链式智能体遗传算法的轮询式多准则特征选择算法的研究,李勇明,曾孝平,特征选择是复杂模式分类系统中重要的预处理过程。本文针对filter模式下传统遗传算法特征选择精度不高,wrapper模式特征选择时间代价��
  • 特征选择遗传算法

    万次阅读 2017-05-22 12:21:54
    基于遗传算法特征选择是一种wrapper方法,该算法是以支持向量机分类器的识别率作为特征选择的可分性判断依据。在遗传算法中,对所选择的特征用[0,1]二进制串来初始化,由于二进制数{0,1}是等概率出现的,所以最优...
  • 遗传算法-特征选择-5

    2011-04-27 15:32:47
    提出了一种基于遗传算法特征选择方法. 首先提取了反映目标和杂波虚警差异的八个特征, 分别是: 四个空间边界属性特征, 一个分形维数特征和三个对比度特征
  • 导言 在某些情况下,使用原始数据训练机器学习算法可能不是合适的选择。该算法在接受原始数据训练时,必须进行特征挖掘,以检测不同组之间的差异。但这需要大量的数据来自动执行特征挖掘。对于小数据集,数据科学家...
  • 特征选择遗传算法

    2021-03-13 20:00:34
    目录遗传算法的定义生物学语义遗传算法的执行过程 遗传算法的定义 生物学语义 遗传算法的执行过程
  • 基于遗传算法特征选择方法基于遗传算法特征选择方法赵 云 刘惟一(云南大学信息学院计算机科学系,昆明 :>?@1A6 8B12:B@C7A21$D-@’%(摘 要 特征提取广泛应用于模式识别、知识发现、机器学习等诸多领域,并受...
  • 百度百科的解释:遗传算法(Genetic Algorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。遗传算法是从代表问题可能潜在的解集的一个...
  • 遗传算法-特征选择-2

    2011-04-27 15:27:52
    提出一种基于类别相关性及遗传算法的文本特征选择方法. 有效地降低了特征空间的维数, 提高了分类准确率. 实验验证了该方法的有效性.
  • 遗传算法-特征选择-7

    2011-04-27 15:37:15
    首先利用灰度共生矩阵法和灰度- 梯度共生矩阵法对研究区遥感图像进行纹理特征提取,共得到23 个纹理特征,然后利用遗传算法对这23 个纹理特征进行纹理特征选择,最后得到一组最优纹理特征集.

空空如也

空空如也

1 2 3 4 5 ... 18
收藏数 341
精华内容 136
关键字:

遗传算法特征选择