首页 > 编程知识 正文

分类变量哑变量,r语言分类变量哑变量

时间:2023-05-06 19:20:02 阅读:259806 作者:4903

Python分析建模,日常问题整理(四)

确认过时间,离发工资还有四周。

2018.08.13~2018.08.19

numpy的argmax、arange方法对哑变量的转化

a = numpy.array([[1, 5, 5, 2],

[9, 6, 2, 8],

[3, 7, 9, 1]])

numpy.argmax(a, axis=0) # 输出每个向量最大值索引

numpy.argmax(a, axis=1) # 输出最大值索引

numpy.equal(result_max, test_max) #一一对应的元素,如果相等返回true,不相等返回false

numpy的方法真的很好用,运算十分快,虽然pd也可以写方法进去,但是就是不如numpy快。

tem = (numpy.arange(3) == np.array([[2],[1],[0],[3]])).astype(int)

将数值变量转化为哑变量,分类为numpy.arange(2) ,即[0,1]

如果数据为0,则返回true,如果数据为1,返回false。

np.astype(int) 能将所有的true转化为1,所有的False转化为0

这样就可以将数据转化为0,1哑变量了。

np.argmax(tem,axis = 1)

将哑变量转化为数值。

type(df.ix[:,1:2]) 或者type(df.iloc[:,1:2])的数据类型是dataframe

type(df['b']) 的数据类型是Series

df.ix[:,1:2].values 的数据形式是多个数组[[2],[4],[1]]

df['b'].values 的数据形式是一个数组[2,4,1]

将dataframe的某列转化为哑变量

如果一共有三个类,那么只需转化为两列哑变量,如果n各类,只需转化为n-1列哑变量。

# 方法一:

(np.arange(2)==pd.DataFrame([0,1,1,0,1]).values).astype(int)

# 方法二:

from keras.utils.np_utils import to_categorical

to_categorical(pd.DataFrame([0,1,1,0,1]).values, num_classes = 2)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。