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.私は深い学習とニューラルネットワークには非常に新しいです。

+0

[ソフトウェア開発ではなく機械学習について](https://meta.stackoverflow.com/q/291009/1233251)という理由から、この質問を議論の対象外とすることにしました。これらの質問は、[Cross Validated](// stats.stackexchange.com)または[DataScience.SE](// datascience.stackexchange.com)で確認できます。 –

答えて

-1

回帰問題の場合、最終密集層の活性化は'linear'または'sigmoid'であり、損失は'mean_squared_error'でなければなりません。

関連する問題