0
0 комментариев

При запуске кода возникает ошибка:’ValueError: could not convert string to float: ‘h»
В датасете f и h это метки с названиями классов объектов.(Фрагмент датасета и код прилагаю)
Изначально классификатор обучался на базе данных с ирисами Фишера и с ними всё работало нормально, хотя в колонке с классами там тоже находятся строки.
Подскажите как исправить, буду благодарен

import sklearn
import pandas as pd
from sklearn import datasets
from sklearn.metrics import accuracy_score
from sklearn.model_selection import train_test_split
import numpy as np
import time
from sklearn.neural_network import MLPClassifier
 
df = pd.read_csv('C:\\Users\\Ilyas\\Documents\\StrngStuff\\dft.csv', index_col = 0)
X = df.loc[:, '1f':'2f'] #Характеристики
y = df.loc[:, 'Pr'] #Метки
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size= .5)
def print_accuracy(f):
    print("Accuracy = {0}%".format(100*np.sum(f(X_test) == y_test)/len(y_test)))
    time.sleep(0.5)
nn1 = MLPClassifier(activation='relu', solver='lbfgs', alpha=1e-1, hidden_layer_sizes=(5, 2), random_state=0)
nn1.fit(X_train, y_train)
print_accuracy(nn1.predict)

Фрагмент датасета, в других частях f заменено на h

,1f,2f,Pr
6.78E-09,0.000000029,"f"
1.71885E-07,7.36621E-07,"f"
1.1053E-06,4.74247E-06,"f"
1.09928E-05,0.000047261,"f"
2.45313E-05,0.000105561,"f"
4.79299E-05,0.000206426,"f"
0.000139912,0.000603569,"f"
0.000217298,0.000938154,"f"
0.000321944,0.001391043,"f"
0.00045879,0.001983876,"f"
0.000848963,0.003676757,"f"
0.001112029,0.004819806,"f"
0.001426622,0.006188141,"f"
0.002227449,0.009676944,"f"

Сам датасет

X_train

y_train

Изначальный датасет


Добавить комментарий