Я считаю, что вам нужно будет указать параметры в ваших данных, которые вы хотите использовать в качестве функций при обучении модели.Похоже, ваша модель обучения использует записи строк в качестве функций вместо каждого столбца.Это можно исправить, прочитав данные, а затем развернувшись и преобразовав их в CSV, а затем снова считав их.Однако этот шаг не требуется, если вы уже знаете, как структурированы данные.По сути, вам просто нужно знать имена столбцов данных.Для этого метода вам понадобится модуль Pandas.Вот некоторый код ...
data = load_files(r"...\docs",encoding="utf-8")
data.to_csv('train_data.csv', encoding = 'utf-8', index = False)
, затем считайте данные обучения обратно из CSV ...
train_data = pd.read_csv('train_data.csv')
Теперь, когда вы вызываете метод train_test_split, вы должны указать, что выхочу использовать в качестве функций в данных.Обычно это столбцы в таблице данных, так как это метрики, которые собираются для анализа.Я определяю функции для разделения данных и строю модель с указанием функций, потому что я думаю, что это легче понять, но вы также можете просто вызывать функции напрямую.
def split_dataset(dataset, train_percentage, feature_headers, target_header):
train_x, test_x, train_y, test_y = train_test_split(dataset[feature_headers],
dataset[target_header], train_size = train_percentage)
return train_x, test_x, train_y, test_y
def random_forest_classifier(features, target):
model = RandomForestClassifier(n_estimators = 500, oob_score = True, n_jobs
=-1,random_state = 1, min_impurity_decrease = .01)
model.fit(features, target)
return model
Теперь вы готовы вызывать функции, используяваши данные.
train_x, test_x, train_y, test_y = split_dataset(train_data, 0.80,
train_data.columns[0:24], train_data.columns[-1])
trained_model = random_forest_classifier(train_x,train_y)
Теперь вы сможете прогнозировать свою обученную модель, используя 25 функций.