首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >机器学习随机森林分类器

机器学习随机森林分类器
EN

Stack Overflow用户
提问于 2018-07-20 17:02:52
回答 2查看 80关注 0票数 0
代码语言:javascript
复制
data=pd.DataFrame({'gender':['m','f','m'],'icds':[['i10'],['i20','i30'],['i40']],'med':[[1,2,4,5],[3,4,6],[5,6,7]]})

对于这种类型的数据,我应该使用哪种机器学习算法?我认为med列中的数组长度不一致。每当我试图在随机森林分类器中传递它时,med列基本上就是标签。

EN

回答 2

Stack Overflow用户

发布于 2018-07-20 17:28:35

是的,你是对的,你应该使用的算法是RF或logistic也应该是好的。问题是“med”列中的数据长度不一致。如果不需要,您可以使用以下函数对中间列数组中的数字数据进行平均/求和:

代码语言:javascript
复制
def sum_out(x):
return np.nansum(x)

np.nanmean(x):返回def (X)

Data=pd.DataFrame({‘性别’:'m','f',‘m’,'icds':['i10','i20','i30','i40'],'med':[1,2,4,5,3,4,6,5,6,7]})

data‘’med_sum‘=data’‘med’.map(Sum_out)data‘’med_avg‘=data’‘med’.map(Avg_out)

票数 0
EN

Stack Overflow用户

发布于 2018-07-20 20:59:33

实际上,您可以将这些药物添加为功能,如下所示:

代码语言:javascript
复制
data=pd.DataFrame({'gender':['m','f','m'],'icds':[['i10'],['i20','i30'],['i40']],'med':[['xanex','isotopin'],['cz3','hicet','t-montair'],['t-montair','xanex']]}) 


all_med= list(np.unique(flatten(list(data['med'].values))))

for meds in all_med:
    med_list=[]
    for i in xrange(len(data)):
        d= data['med'][i]
        if meds in d:
            med_list.append(1)
        else:
            med_list.append(0)
    data[meds]=med_list

输出:

代码语言:javascript
复制
  gender        icds                      med  cz3  hicet  isotopin  \
0      m       [i10]        [xanex, isotopin]    0      0         1
1      f  [i20, i30]  [cz3, hicet, t-montair]    1      1         0
2      m       [i40]       [t-montair, xanex]    0      0         0

   t-montair  xanex
0          0      1
1          1      0
2          1      1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51438894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档