Ошибка Python: x и y должны иметь одинаковое первое измерение, но иметь формы (8,) и (1,) - PullRequest
0 голосов
/ 04 июля 2019

# Я пытаюсь прочитать данные, предоставленные python, и применить KNN.Однако в моем графике нет данных, и я получаю топор, а у y должно быть одинаковое первое измерение, но есть ошибки фигур (8,) и (1,).

# I have tried using .shape to no luck.

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

plt.style.use('ggplot')

df = pd.read_csv  ('/content/heart.csv')
df.head()
df.shape

x = df.drop('target', axis=1).values
y = df['target'].values   

from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test = train_test_split(x,y, test_size=0.4,random_state=42, stratify=y)

from sklearn.neighbors import KNeighborsClassifier
neighbors = np.arange(1,9)
train_accuracy = np.empty(len(neighbors))
test = np.empty(len(neighbors))

knn = KNeighborsClassifier(n_neighbors=2)
knn.fit(x_train, y_train)
train_accuracy = knn.score(x_train,y_train)
test_accuracy = knn.score(x_test, y_test)

test_accuracy = knn.score(x_test, y_test) 
plt.title('k-NN Varying number of neighbors')
plt.plot(neighbors, test_accuracy, label='Testing Accuracy')
plt.plot(neighbors, train_accuracy, label='Training Accuracy')
plt.legend()
plt.xlabel('Number of neighbors')
plt.ylabel('Accuracy')
plt.show()


Should plot a graph,

however, the graph has no info on it.

1 Ответ

0 голосов
/ 04 июля 2019

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * shapes (8,) and (1,) error. *. Этот график не имеет смысла и не может быть построен. Я не уверен, что вы пытаетесь достичь в программе. Можете ли вы обновить с желаемым результатом?

...