微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么 MLPclassifier 对我的数据不起作用?

如何解决为什么 MLPclassifier 对我的数据不起作用?

我想通过查看人们之前购买的产品来预测他们将购买的产品。

我的数据框有 'overall'、'reviewerID'、'asin'、'brand'。

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是这个。

我分配了 3 列,它们是“整体”、“评论者 ID”、“品牌”到 X,还有 1 列是“asin”到下面的 y:

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)

我将 Sklearn 库用于 MLP 分类器。

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 上检查了变量资源管理器屏幕,一切正常,直到 clf.fit(X_train,y_train) 行。

有人可以帮我解决这个问题吗?或者使用什么方法可以通过查看人们之前购买的产品来预测他们将购买的产品?

解决方法

一切看起来都很好。您拥有非常大的数据,因此您应该再等一会儿才能适应它。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。