我想通过观察一个人之前购买的产品来预测他们将购买的产品
我的数据框有“总体”、“审阅者ID”、“asin”、“品牌”
overall - rating of the product
reviewerID - ID of the reviewer
asin - ID of the product
brand - brand name
我的代码如下:
import pandas as pd
import numpy as np
first = pd.read_pickle("customers_more_than_one_product.pkl")
data = pd.read_pickle("customers_more_than_one_product.pkl")
data['reviewerID'] = data["reviewerID"].rank(method='dense').astype(int)
data['asin'] = data["asin"].rank(method='dense').astype(int)
data['brand'] = data["brand"].rank(method='dense').astype(int)
data = data.drop(["reviewTime","reviewText","title"],1)
我的dataframe是这个
我在下面给X分配了3列,分别是“总体”、“审阅者ID”、“品牌”,给y分配了1列,分别是“asin”:
X= data["reviewerID"].values
x1=data["overall"].values
x2=data["brand"].values
X=np.vstack(X, x1,x2).T
y= data["asin"].values
我对数据进行了拆分,随机选择70%的元组用于训练,而30%的元组用于训练 用于测试
from sklearn.model_selection import train_test_split
X_train,X_test , y_train , y_test = train_test_split(X, y, test_size=0.3, random_state=1)
我使用了MLP Classsifier的Sklearn库
from sklearn.neural_network import MLPClassifier
import time
training_time_avg=0
error_cost_avg=0
i=0
我应用单层感知器网络解算器来处理我的数据10次。我还尝试拟合我的训练数据,并使用“时间”计算时间:
while i < 10:
clf= MLPClassifier(hidden_layer_sizes=(), max_iter=100)
start = time.time()
clf.fit(X_train, y_train)
stop = time.time()
accuracy=clf.score(X_test, y_test)
error_rate = 1 - accuracy
training_time_avg = training_time_avg + (stop - start)
error_cost_avg=error_cost_avg + error_rate
i=i+1
我打印了平均训练时间和错误代价
print("max_iter:",100)
print("\nTraining Time Average (in ms): ",(training_time_avg/10))
print("Error Average (cost): ", (error_cost_avg/10))
然而,我的代码一直在运行,尽管在运行代码时没有出现错误。就像一个无止境的循环。我检查了Spyder上的Variable Explorer屏幕,一切都正常,直到clf.fit(X\u train,y\u train)行
有人能帮我解决这个问题吗?或者,通过观察一个人先前购买的产品,我可以使用哪种方法预测他们将购买的产品
一切看起来都很好。你有非常大的数据,所以你应该再等一段时间来适应它
相关问题 更多 >
编程相关推荐