fea_selected去除特征标准差小于0.1
时间: 2023-06-23 12:57:36 浏览: 87
如果你想去除特征标准差小于0.1的特征,你可以按照以下步骤进行操作:
1. 计算每个特征的标准差。
2. 找出标准差小于0.1的特征。
3. 从特征集中去除这些特征。
代码示例:
```python
import pandas as pd
import numpy as np
# 生成数据
data = pd.DataFrame(np.random.rand(100, 5), columns=['feat1', 'feat2', 'feat3', 'feat4', 'feat5'])
# 计算标准差
stds = data.std()
# 找出标准差小于0.1的特征
low_std_feats = stds[stds < 0.1].index.tolist()
# 从特征集中去除这些特征
fea_selected = data.drop(columns=low_std_feats)
```
在上面的代码中,我们首先使用 pandas 库生成了一个包含 5 个特征的数据集。然后,我们计算了每个特征的标准差,并找出了标准差小于 0.1 的特征。最后,我们使用 pandas 的 drop() 函数从特征集中去除了这些特征。
相关问题
def get_features(self, output_list): fea_list_src, fea_list_tar = [], [] for fea in output_list: fea_list_src.append(fea[0: fea.size(0) // 2]) fea_list_tar.append(fea[fea.size(0) // 2:]) return fea_list_src, fea_list_tar
这是一个用于从输出列表中提取特征的函数。函数接受一个输出列表作为输入,并将其划分为源特征列表和目标特征列表。
函数首先创建两个空列表fea_list_src和fea_list_tar,用于存储源特征和目标特征。
接下来,函数使用循环遍历输出列表中的每个特征。对于每个特征,函数会将其前半部分添加到fea_list_src中,将其后半部分添加到fea_list_tar中。
最后,函数返回划分后的源特征列表fea_list_src和目标特征列表fea_list_tar作为结果。
def GenerateTrainData(stat, trainresult): X = [] y = [] for index, rows in trainresult.iterrows(): winteam = rows['WTeam'] loseteam = rows['LTeam'] winelo = GetElo(winteam) loseelo = GetElo(loseteam) # 主场加100 if rows['WLoc'] == 'H': winelo = winelo+100 else: loseelo = loseelo+100 # 把elo当为评价每个队伍的第一个特征值 fea_win = [winelo] fea_lose = [loseelo] for key, value in stat.loc[winteam].iteritems(): fea_win.append(value) for key, value in stat.loc[loseteam].iteritems(): fea_lose.append(value) if np.random.random() > 0.5: X.append(fea_win+fea_lose) y.append(0) else: X.append(fea_lose+fea_win) y.append(1) # 更新team elo分数 win_new_score, lose_new_score = CalcElo(winteam, loseteam) team_elos[winteam] = win_new_score team_elos[loseteam] = lose_new_score return np.nan_to_num(X),y
这段代码是用于生成机器学习所需的训练数据。其中,stat 指代每个队伍的统计数据,trainresult 指代比赛结果数据。对于每一场比赛,先获取胜利队伍和失败队伍的 Elo 等级分,并在主场胜者 Elo 等级分加 100。然后,将胜利队伍和失败队伍的 Elo 等级分以及统计数据作为特征值,组合成特征向量。接着,根据 0.5 的概率将特征向量和胜负标签(0 表示胜利队伍,1 表示失败队伍)加入到训练数据集中。最后,根据比赛结果更新每个队伍的 Elo 等级分,并返回训练数据集 X 和对应的标签 y。值得注意的是,这里使用了 np.nan_to_num 函数将特征向量中的 NaN 值替换为 0。
阅读全文