我有以下代码,我只是想自学如何使用机器学习模型。
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 维。 老实说不知道该怎么办。