ValueError:使用序列设置数组元素。在决策树分类器中拟合

问题描述 投票:0回答:0

我有以下代码,我只是想自学如何使用机器学习模型。

import ast
import csv
import pandas as pd
import numpy as np
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

data = pd.read_csv('datos_actualizadosPipes.csv', delimiter=";")


#data['nombreCaballo'] = data['nombreCaballo'].apply(lambda x: ast.literal_eval(x))
d=data['nombreCaballo'].apply(ast.literal_eval).tolist()
data['nombreCaballo']=d
data['fuerza']=data['fuerza'].apply(ast.literal_eval).tolist()
data['premios']=data['premios'].apply(ast.literal_eval).tolist()
data['5Carreras']=data['5Carreras'].apply(ast.literal_eval).tolist()
data['porcentaje']=data['porcentaje'].apply(ast.literal_eval).tolist()
data['multiplicador']=data['multiplicador'].apply(ast.literal_eval).tolist()

data['ganadorNom']=data['ganadorNom'].apply(ast.literal_eval).tolist()
data['segundo_puestoNom']=data['segundo_puestoNom'].apply(ast.literal_eval).tolist()



nc = np.asarray(data['nombreCaballo'])
f = np.asarray(data['fuerza'])
p = np.asarray(data['premios'])
c = np.asarray(data['5Carreras'])
po= np.asarray(data['porcentaje'])
m = np.asarray(data['multiplicador'])

ga= np.asarray(data['ganadorNom'])
seg = np.asarray(data['segundo_puestoNom'])


#df=csv.reader('datos_actualizados.csv', dialect='excel')


X = data[['numeroCarrera', 'porcentaje']]
X['nombreCaballo']=nc
X['fuerza']=f
X['premios']=p
X['5Carreras']=c
#X['multiplicador']=m
X['porcentaje']=po
X['multiplicador']=m

y = data[['ganadorNum', 'segundo_puestoNum']]#,'tercerPuesto','cuartoPuesto','quintoPuesto','sextoPuesto']]
y['ganadorNom']=ga
y['segundo_puestoNom']=seg
#print(data['nombreCaballo'])


X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.8, random_state=42)

print(X_train)
print(y_train)
print(X_test)
print(y_test)

print(X_train.ndim  )
print(y_train.ndim )
print(X_test.ndim  )
print(y_test.ndim )

model = DecisionTreeClassifier(random_state=42)
model.fit(X_train, y_train)

y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f'Precisión del modelo: {accuracy}')

new_data = pd.DataFrame({})
predictions = model.predict(new_data)
print(predictions)

我已经将 csv 信息加载到模型的“可接受格式”中。 在 csv 中有一些包含整数列表的列;它的列表或只是整数。我不知道问题是在列表列表中还是什么。但是我收到以下错误:

Exception has occurred: ValueError
setting an array element with a sequence.
  File "C:\Users\Malelizarazo\OneDrive - Universidad de los Andes\U\Cosas random\python\Caballos\hjk.py", line 68, in <module>
    model.fit(X_train, y_train)
ValueError: setting an array element with a sequence.

X_train、X_test、Y_test 和 Y_train 都是 2 维。 老实说不知道该怎么办。

python machine-learning decision-tree sklearn-pandas
© www.soinside.com 2019 - 2024. All rights reserved.