将两个one

编程入门 行业动态 更新时间:2024-10-18 16:44:26

将<a href=https://www.elefans.com/category/jswz/34/1771443.html style=两个one"/>

将两个one

文章目录

    • 假数据构造
    • one-hot
    • 拼接one-hot后的稀疏矩阵
      • 思路一
      • 思路二

import pandas as pd, numpy as np, warnings
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.preprocessing import OneHotEncoderwarnings.filterwarnings("ignore", category=DeprecationWarning)

假数据构造

iddict = {'advert_place': [1, 2, 11, 4, 3], 'provinced_id':[10, 10, 30, 2, 10]}
data1 = pd.DataFrame(iddict)
data1
iddict = {'A': [1, 2, 11, 4, 3], 'B':[10, 10, 30, 2, 10], 'C':[100, 200, 300, 400, 500], 'y':[1, 0, 0, 0, 1]}
data2 = pd.DataFrame(iddict)
data2


one-hot

ohecodel = OneHotEncoder()
advert_place = ohecodel.fit_transform(np.array(data1['advert_place']).reshape(-1, 1))print(advert_place)
print(advert_place.shape)
# print(advert_place.toarray())  # 稀疏矩阵转成array

x_train, y_train = np.array(data2[['A', 'B', 'C']]), np.array(data2['y'])gbdt = GradientBoostingClassifier(n_estimators=100, learning_rate=0.743, max_depth=3, min_samples_leaf=50, min_samples_split=5, min_impurity_decrease=0.2)
gbdt.fit(x_train, y_train.ravel())x_train_leaves = gbdt.apply(x_train)[:, :, 0]ohecodel = OneHotEncoder()
x_train_trans = ohecodel.fit_transform(x_train_leaves)print(x_train_trans)
print(x_train_trans.shape)

拼接one-hot后的稀疏矩阵

思路一

将两个稀疏矩阵,通过toarray()todense()的方式转为array,在按行拼接

a = x_train_trans.todense()
b = advert_place.todense()
c = np.hstack((a,b))
print(c)

a = x_train_trans.toarray()
b = advert_place.toarray()
c = np.hstack((a,b))
print(c)

思路二

通过hstack

from scipy.sparse import hstack
a = x_train_trans
b = advert_place
c = hstack((a, b))
print(c.todense())

更多推荐

将两个one

本文发布于:2024-02-24 16:31:34,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1695958.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:两个

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!