ValueError: Найденный массив с 0 объектами (shape = (546, 0)), хотя требуется минимум 1 - PullRequest
0 голосов
/ 28 августа 2018

Я просто пытался обработать данные, где я часто получаю эту ошибку. Может кто-нибудь объяснить мне, что не так в этом конкретном коде для данного набора данных?

Заранее спасибо!

# STEP 1: IMPORTING THE LIBARIES

import numpy as np
import pandas as pd

# STEP 2: IMPORTING THE DATASET
dataset = pd.read_csv("https://github.com/Avik-Jain/100-Days-Of-ML-Code/blob/master/datasets/Data.csv", error_bad_lines=False)

X = dataset.iloc[:,:-1].values  
Y = dataset.iloc[:,1:3].values

# STEP 3: HANDLING THE MISSING VALUES
from sklearn.preprocessing import Imputer

imputer = Imputer(missing_values = "NaN",strategy = "mean",axis = 0)
imputer = imputer.fit(X[ : , 1:3])
X[:,1:3] = imputer.transform(X[:,1:3]) 

# STEP 4: ENCODING CATEGPRICAL DATA
from sklearn.preprocessing import LaberEncoder,OneHotEncoder
labelencoder_X = LabelEncoder()  # Encode labels with value between 0 and n_classes-1.
X[ : , 0] = labelencoder_X.fit_transform(X[ : , 0]) # All the rows and first columns

onehotencoder = OneHotEncoder(categorical_features = [0])
X = onehotencoder.fit_transform(X).toarray()

labelencoder_Y = LabelEncoder()
Y =  labelencoder_Y.fit_transform(Y)

# Step 5: Splitting the datasets into training sets and Test sets

from sklearn.cross_validation import train_test_split
X_train, X_test, Y_train, Y_test = train_test_split( X , Y , test_size = 0.2, random_state = 0)

# Step 6: Feature Scaling
from sklearn.preprocessing import StandardScaler
sc_X = StandardScaler()
X_train = sc_X.fit_transform(X_train)
X_test = sc_X.fit_transform(X_test)

Возвращает ошибку:

ValueError: Found array with 0 feature(s) (shape=(546, 0)) while a minimum of 1 is required.

1 Ответ

0 голосов
/ 28 августа 2018

Ваша ссылка в этой строке

dataset = pd.read_csv("https://github.com/Avik-Jain/100-Days-Of-ML-Code/blob/master/datasets/Data.csv", error_bad_lines=False)

не так.

Текущая ссылка возвращает веб-страницу на github, где отображается этот CSV, но не фактические данные CSV. Таким образом, любые данные, присутствующие в dataset, недействительны.

Измените это на:

dataset = pd.read_csv("https://raw.githubusercontent.com/Avik-Jain/100-Days-Of-ML-Code/master/datasets/Data.csv", error_bad_lines=False)

Кроме этого, в LabelEncoder import есть орфографическая ошибка.

Теперь, даже если вы исправите это, все равно будут ошибки из-за

Y =  labelencoder_Y.fit_transform(Y)

LabelEncoder принимает только один массив столбцов в качестве входных данных, но ваш текущий Y будет иметь 2 столбца из-за

Y = dataset.iloc[:,1:3].values

Пожалуйста, объясните более четко, что вы хотите сделать.

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