hstack()は、NumPyやSciPyで使用される複数の行列(または配列)を水平方向(列方向)に結合するための関数です。
サンプルコード
複数の特徴量ベクトルの結合
TF-IDF特徴量、テキスト特徴量、Word2Vec特徴量、文の長さ特徴量などを1つの特徴量行列にまとめて機械学習モデルに入力する準備を整えることができます。
from scipy.sparse import csr_matrix, hstack
# ダミーデータの疎行列
tfidf_train_vectors = csr_matrix([[0, 1, 2], [3, 4, 0], [0, 0, 5]])
tx_train_vectors = csr_matrix([[1, 0, 2], [0, 3, 0], [4, 0, 0]])
word2vec_train_vectors = csr_matrix([[0.1, 0.2], [0.3, 0.4], [0.5, 0.6]])
train_length_features = csr_matrix([[5], [8], [12]])
# 特徴量の結合
combined_train_vectors = hstack([tfidf_train_vectors, tx_train_vectors, word2vec_train_vectors, train_length_features])
print("tfidf_train_vectors:\n", tfidf_train_vectors.toarray())
print("tx_train_vectors:\n", tx_train_vectors.toarray())
print("word2vec_train_vectors:\n", word2vec_train_vectors.toarray())
print("train_length_features:\n", train_length_features.toarray())
print("combined_train_vectors:\n", combined_train_vectors.toarray())
結果
tfidf_train_vectors:
[[0 1 2]
[3 4 0]
[0 0 5]]
tx_train_vectors:
[[1 0 2]
[0 3 0]
[4 0 0]]
word2vec_train_vectors:
[[0.1 0.2]
[0.3 0.4]
[0.5 0.6]]
train_length_features:
[[ 5]
[ 8]
[12]]
combined_train_vectors:
[[ 0. 1. 2. 1. 0. 2. 0.1 0.2 5. ]
[ 3. 4. 0. 0. 3. 0. 0.3 0.4 8. ]
[ 0. 0. 5. 4. 0. 0. 0.5 0.6 12. ]]
コメント