0
これは私が持っているデータの例です。 dfの長さは1778360です。 検索用語は、検索エンジンで人が入力するクエリです。 CR(コンバージョン率)は連続した数値です。 0から無制限に開始されます。ケラスで継続目標値を予測できますか?
Search term CR
0 asos french connection lined mac 100
1 hugo boss polo black 50
2 women's pale grey trousers uk 47
3 military jacket 8
4 girls adidas red tracksuit top 0
私が望むのは、テキストを入力として予測することです。
texts = df['Search term']
tags = df['CR']
num_max = 1000
# preprocess
le = LabelEncoder()
tags = le.fit_transform(tags)
token = Tokenizer(num_words=num_max)
token.fit_on_texts(texts)
mat_texts = token.texts_to_matrix(texts, mode='freq')
print(tags[:5])
print(mat_texts[:5])
print(tags.shape, mat_texts.shape)
# split data to train and test
X_train, X_test, y_train, y_test = train_test_split(mat_texts, tags, train_size=0.8, random_state=1)
# create model
model = Sequential()
model.add(Dense(512, input_dim=num_max, kernel_initializer='normal', activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(100, kernel_initializer='normal', activation='softmax'))
# compile model
model.compile(loss='sparse_categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])
# fit the model
model.fit(X_train, y_train, epochs=10, batch_size=32, verbose=0, validation_data=(X_test, y_test))
# evaluate the model
train_scores = model.evaluate(X_train, y_train, verbose=0)
print("Train %s: %.2f%%" % (model.metrics_names[1], train_scores[1]*100))
test_scores = model.evaluate(X_test, y_test, verbose=0)
print("Test %s: %.2f%%" % (model.metrics_names[1], test_scores[1]*100))
私は、結果としてこれを得た: 列車のACC:82.53パーセント テストACC:82.48パーセント
私は最後の緻密で損失関数が正しいかどうかはわかりません。これは線形回帰によく似ていますが、線形回帰に適したケラスモデルは見つかりませんでした。
誰かが助けてくれますか?ありがとう。
p.s.私は深い学習とニューラルネットワークには非常に新しいです。
[ソフトウェア開発ではなく機械学習について](https://meta.stackoverflow.com/q/291009/1233251)という理由から、この質問を議論の対象外とすることにしました。これらの質問は、[Cross Validated](// stats.stackexchange.com)または[DataScience.SE](// datascience.stackexchange.com)で確認できます。 –