Привет! Я работаю со сложным набором данных, так как корреляция между входом и выходом низкая, но результаты очень хорошие (точность теста 99,9%). Я уверен, что делаю что-то не так, просто не знаю что.
метка является столбцом 'unsafe', который равен 0 или 1 (изначально был 0 или 100, но я ограничил максимальное значение - это не имело значения для результата. Я начал со случайных лесов, а затем запустил k ближайших соседей и получил почти с такой же точностью, 99,9%. Скриншоты df:

есть намного больше 0, чем 1 (в обучении из 80 000 есть только 169 1, и в конце также есть цикл 1, но это просто, как был импортирован исходный файл)
import os
import glob
import numpy as np
import pandas as pd
import sklearn as sklearn
from sklearn.tree import DecisionTreeClassifier
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.read_pickle('/Users/shellyganga/Downloads/ola.pickle')
maxVal = 1
df.unsafe = df['unsafe'].where(df['unsafe'] <= maxVal, maxVal)
print(df.head)
df.drop(df.columns[0], axis=1, inplace=True)
df.drop(df.columns[-2], axis=1, inplace=True)
#setting features and labels
labels = np.array(df['unsafe'])
features= df.drop('unsafe', axis = 1)
# Saving feature names for later use
feature_list = list(features.columns)
# Convert to numpy array
features = np.array(features)
from sklearn.model_selection import train_test_split
# 30% examples in test data
train, test, train_labels, test_labels = train_test_split(features, labels,
stratify = labels,
test_size = 0.3,
random_state = 0)
from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier()
knn.fit(train, train_labels)
print(np.mean(train_labels))
print(train_labels.shape)
print('accuracy on train: {:.5f}'.format(knn.score(train, train_labels)))
print('accuracy on test: {:.5f}'.format(knn.score(test, test_labels)))
1015 * * Выход:
0.0023654350798950337
(81169,)
accuracy on train: 0.99763
accuracy on test: 0.99761