def n3_error_rate_nearest_neighbor_classifier(data):
features = data.columns[:-1, ]
mistakes = 0
n = data.shape[0]
for i in range(n):
bad_df = data.index.isin([i])
good_df = ~bad_df
knn = KNeighborsClassifier( n_neighbors=1 )
knn.fit(data.iloc[good_df].iloc[:, :-1], data.iloc[good_df].iloc[: ,-1])
temp = np.array(data.iloc[i ,:-1]).reshape(1,-1)
mistake = 1 if data.iloc[i, -1] != knn.predict(temp) else 0
mistakes = mistakes + mistake
n3 = (1.0 * mistakes) / n
if n3 > 1:
n3 = 1
return n3
评论列表
文章目录