0
私はFrappe(http://baltrunas.info/data/CARS2_code.zip)データセットでpyFMを使用しようとしています。以下は、私のコードです:FrappeデータセットでpyFMを使用する
import numpy as np
from sklearn.feature_extraction import DictVectorizer
from pyfm import pylibfm
def loadData(filename,path="datasets/"):
data = []
y = []
users=set()
items=set()
with open(path+filename) as f:
for line in f:
(user,movieid,rating,ts)=line.split('\t')
data.append({ "user_id": str(user), "movie_id": str(movieid)})
y.append(float(rating))
users.add(user)
items.add(movieid)
return (data, np.array(y), users, items)
(train_data, y_train, train_users, train_items) = loadData("traindata.txt")
(test_data, y_test, test_users, test_items) = loadData("testdata.txt")
v = DictVectorizer()
X_train = v.fit_transform(train_data)
X_test = v.transform(test_data)
fm = pylibfm.FM(num_factors=10, num_iter=100, verbose=True, task="regression", initial_learning_rate=0.001,learning_rate_schedule="optimal")
fm.fit(X_train,y_train)
preds = fm.predict(X_test)
from sklearn.metrics import mean_squared_error
print("FM MSE: %.4f" % mean_squared_error(y_test,preds))
しかし、私は0.0000として、このコードとFM MSEを実行する上で非推奨警告が表示されます。 コードを正しく実行するにはどうすればよいですか?
問題は、レーティング= 1を含む暗黙的なデータセットであるため、トレーニングデータセットにある可能性があります。 –