В вычислении numpy std np.std (y_test == y_test_predict), что означает сравнение разделения теста и прогнозируемого результата - PullRequest
0 голосов
/ 08 февраля 2020

Pl, посмотрите на алгоритм ML классификации K Neight, используя Python

 for i in range (0,Ks):
     neigh = KNeighborsClassifier(n_neighbors = i+1).fit(x_train,y_train)
     y_test_predict = neigh.predict(x_test)
     mean_acc[i] = metrics.accuracy_score(y_test,y_test_predict)
     std_acc[i] = np.std(y_test == y_test_predict)/np.sqrt(y_test_predict.shape[0])

У меня есть 1 вопрос (1), что означает это утверждение "np.std (y_test == y_test_predict) ». что будет выводом операции y_test == y_test_predict и почему она передается в качестве аргумента в std () lib

и что такое logi c за формулой стандартного отклонения

 std_acc[i] = np.std(y_test == y_test_predict)/np.sqrt(y_test_predict.shape[0])

(2) почему точность стандартного отклонения вычисляется следующим образом:

 np.std(y_test == y_test_predict)/np.sqrt(y_test_predict)

1 Ответ

0 голосов
/ 08 февраля 2020

Позвольте мне разбить это на две части.

  1. Сравнение двух numpy массивов возвращает логический массив. Предположим, что y_test = np.array([0, 0, 1]) и y_test_pred = np.array([0, 1, 1]). Затем y_test == y_test_pred возвращает array([True, False, True]). По сути, поэлементное сравнение двух массивов выполняется в соответствии с индексом. Если вы понимаете это, теперь, возможно, вы можете увидеть значение, стоящее за np.std(y_test == y_test_predict): он просто вычисляет стандартное отклонение логического массива, возвращенного при сравнении.

  2. Формула np.std(y_test == y_test_predict)/np.sqrt(y_test_predict.shape[0]) в основном, беря логический массив для вычисления его стандартного отклонения, затем делим это стандартное отклонение на длину этого массива.

Если что-то неясно, я был бы рад предоставить дополнительную информацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...