Я пытаюсь найти более гибкий сценарий ввода knn, чем учебники, основанные на наборе данных iris, но у меня возникли некоторые проблемы (я думаю), чтобы добавить соответствующее 2-е измерение в массив numpy в # 6 и когда я приду к # 11. примерка.
Файл "G: \ PROGRAMMERING \ Anaconda \ lib \ site-packages \ sklearn \ utils \ validation.py", строка 212, в check_consistent_length "samples:% r"% [int (l) для l в длинах]) ValueError: Найдены входные переменные с непоследовательным количеством выборок: [150, 1]
x равно (150,5) и y равно (150,1). 150 - это количество выборок в обоих, но они различаются по количеству полей, это проблема, и если да, то как мне это исправить?
#1. Loading the Pandas libraries as pd
import pandas as pd
import numpy as np
#2. Read data from the file 'custom.csv' placed in your code directory
data = pd.read_csv("custom.csv")
#3. Preview the first 5 lines of the loaded data
print(data.head())
print(type(data))
#4.Test the shape of the data
print(data.shape)
df = pd.DataFrame(data)
print(df)
#5. Convert non-numericals to numericals
print(df.dtypes)
# Any object should be converted to numerical
df['species'] = pd.Categorical(df['species'])
df['species'] = df.species.cat.codes
print("outcome:")
print(df.dtypes)
#6.Convert df to numpy.ndarray
np = df.to_numpy()
print(type(np)) #this should state <class 'numpy.ndarray'>
print(data.shape)
print(np)
x = np.data
y = [df['species']]
print(y)
#K-nearest neighbor (find closest) - searach for the K nearest observations in the dataset
#The model calculates the distance to all, and selects the K nearest ones.
#8. Import the class you plan to use
from sklearn.neighbors import (KNeighborsClassifier)
#9. Pick a value for K
k = 2
#10. Instantiate the "estimator" (make an instance of the model)
knn = KNeighborsClassifier(n_neighbors=k)
print(knn)
#11. fit the model with data/model training
knn.fit(x, y)
#12. Predict the response for a new observation
print(knn.predict([[3, 5, 4, 2]]))```