如何使用scikitlearn拟合多维输出?

2024-05-16 01:26:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将OneVsAll分类输出放入训练数据中,输出行加起来等于1。在

一种可能的方法是读取所有行,找出哪个列的值最高,并为训练准备数据。在

例如:y = [[0.2,0.8,0],[0,1,0],[0,0.3,0.7]]可以简化为y = [b,b,c],分别考虑{}作为列{}的对应类。在

scikit learn中是否有一个函数可以帮助实现这种转换?在


Tags: 数据方法函数分类scikitlearnonevsall
1条回答
网友
1楼 · 发布于 2024-05-16 01:26:20

此代码执行您想要的操作:

import numpy as np
import string

y = np.array([[0.2,0.8,0],[0,1,0],[0,0.3,0.7]])

def transform(y,labels):
  f = np.vectorize(lambda i : string.letters[i])
  y = f(y.argmax(axis=1)) 
  return y

y = transform(y,'abc') 

编辑:使用alko的注释,我让它更一般化,让用户为转换函数提供标签。在

相关问题 更多 >