问题描述
这是数据集的格式 enter image description here
这是我的代码:
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
#Importing the dataset
dataset1 = pd.read_csv('DATASETS/movielens movie recommender/ml-25m/ratings.csv')
#Splitting into dependent and independent variables
X1 = dataset1.iloc[:,[0,3]].values
y1 = dataset1.iloc[:,1:3].values
#Encoding
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder
ct = ColumnTransformer(transformers=[('encoder',OneHotEncoder(),1])],remainder='passthrough')
ct2 = ColumnTransformer(transformers=[('encoder',[0])],remainder='passthrough')
y1 = np.array(ct.fit_transform(y1))
X1 = np.array(ct2.fit_transform(X1))
#Splitting into training set and test set
from sklearn.model_selection import train_test_split
X1_train,X1_test,y1_train,y1_test = train_test_split(X1,y1,test_size = 0.2,random_state = 1)
我收到以下错误
TypeError: Singleton array array(<25000095x162542 sparse matrix of type '<class 'numpy.float64'>'
with 50000190 stored elements in Compressed Sparse Row format>,dtype=object) cannot be considered a valid collection.
有人可以告诉我这是什么意思,我该如何解决?
解决方法
代替这个
y1 = np.array(ct.fit_transform(y1))
X1 = np.array(ct2.fit_transform(X1))
你可以使用
y1 = ct.fit_transform(y1).toarray()
x1 = ct.fit_transform(x1).toarray()
它对我有用!