【发布时间】:2021-10-14 09:55:14
【问题描述】:
我是 ML 新手,我正在尝试构建一个模型来预测一个产品 ID,该模型将来自两个不同产品类别的另一个产品 ID 放入其中。数据如下所示:
| Product_A | Product_B |
|---|---|
| 14432 | 91342 |
| 14463 | 2344 |
我尝试过一次热编码标签和特征,但模型根本没有学习。 它应该如下所示:您将 product1 输入 (0 0 0 1 0 0 0..) 并将 product2 作为标签 (0 1 0 0 0...)。
网络的神经元数量与产品 1 的类别一样多,输出上的神经元数量与第二个产品类别的数量一样多。例如:T 恤(200 个产品) 豆豆(500 个产品)。所以要预测豆豆。我想我应该使用 200 个输入神经元和 500 个输出神经元。
这是我的代码:
def import_data(url):
dataframe = pd.read_csv(url)
return dataframe
def prepare_df(dataframe):
split_data = dataframe['product_ids'].str.split(',', n=1, expand=True)
split_data = split_data.rename(columns={0: 'Beanie', 1: 'Shirt'})
split_data = split_data.dropna()
split_data['Beanie'] = pd.to_numeric(split_data["Beanie"]).astype('category').cat.codes
split_data['Shirt'] = pd.to_numeric(split_data['Shirt']).astype('category').cat.codes
return split_data
def create_model():
my_model = Sequential()
my_model.add(Input(shape=(127,)))
my_model.add(Dense(127, activation='sigmoid'))
my_model.add(Dense(127, activation='sigmoid'))
my_model.add(Dense(607, activation='sigmoid'))
return my_model
if __name__ == '__main__':
data = import_data('data/_Data_Beanies_Shirts_2.csv')
data = prepare_df(data)
X = data['Shirt']
y = data['Beanie']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1, shuffle=True)
X_train = to_categorical(X_train)
X_test = to_categorical(X_test)
y_train = to_categorical(y_train)
y_test = to_categorical(y_test)
optimizer = Adam(learning_rate=0.001)
model = create_model()
model.compile(
loss='binary_crossentropy', optimizer=optimizer, metrics=['accuracy']
)
print("Fit model on training data")
history = model.fit(
x=X_train, y=y_train, epochs=100, verbose=1,
validation_data=(X_test, y_test))
我可能需要像嵌入这样的东西吗?
如果有人可以帮助我,那就太好了。 任何帮助是极大的赞赏! 谢谢!
【问题讨论】:
-
您是否正在尝试构建推荐系统?
-
是的,我正在尝试建立一个推荐系统:)
-
我知道人们讨厌听到这个,但是很多从事机器学习的人有时需要听到它。神经网络并不是万能的!更简单的模型有时更强大,并取得更好的结果。也许看看这个教程(scikit-learn 部分):towardsdatascience.com/…
-
是的,我知道,但我必须为这个项目使用神经网络来构建它。但是感谢您的文章:)
标签: python tensorflow keras tf.keras recommender-systems