Модель классификатора Scikit-Learn возвращает все нулыPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Модель классификатора Scikit-Learn возвращает все нулы

Сообщение Anonymous »

Итак, я пытаюсь обучить модель randomforestclassifier. Однако, когда я тренируюсь, это дает мне все нулы. И я действительно не могу понять, почему. Набор данных огромный (ближе к 75 0000 рядам), поэтому я немного потерян. Вот код. : < /p>
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

df = pd.read_csv("train.csv")
X_train = df.iloc[:, 1:-1].values
y_train = df.iloc[:, [-1]].values

df = pd.read_csv("test.csv")
X_test = df.iloc[:, 1:].values

from sklearn.impute import SimpleImputer
imputer = SimpleImputer(missing_values=np.nan, strategy = "most_frequent")
imputer.fit(X_train[:, :])
X_train[:, :] = imputer.transform(X_train[:, :])
X_test[:, :] = imputer.transform(X_test[:, :])

int_features = []
categorical_features = []
for i in range(len(X_train[0])) :
if type(X_train[0]) == int or type(X_train[0]) == float :
int_features.append(i)
elif type(X_train[0]) == str :
categorical_features.append(i)

from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder
ct_x = ColumnTransformer(transformers=[('encoder', OneHotEncoder(), categorical_features)], remainder='passthrough')
X_train = np.array(ct_x.fit_transform(X_train))
X_test = np.array(ct_x.transform(X_test))

ct_y = ColumnTransformer(transformers=[('encoder', OneHotEncoder(), [0])], remainder='passthrough', sparse_threshold=0)
y_train = np.array(ct_y.fit_transform(y_train))

from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train[:, int_features] = sc.fit_transform(X_train[:, int_features])
X_test[:, int_features] = sc.transform(X_test[:, int_features])

from sklearn.ensemble import RandomForestClassifier
classifier = RandomForestClassifier(n_estimators=500, max_depth=25, random_state=42)
classifier.fit(X_train, y_train)

y_pred = classifier.predict(X_test)

#print(y_pred)
# Access the OneHotEncoder
ohe = ct_y.named_transformers_['encoder']

# Apply inverse_transform
inverse_transformed_data = ohe.inverse_transform(y_pred)

#print(inverse_transformed_data)
#print(inverse_transformed_data)

По сути, эта модель должна предсказать, какое удобрение использовать на основе данных, то есть, насколько хороша почва и т. Д. Я вывел y_train , потому что она содержит все названия фьюрилизатора, которые модель должна предсказать. Тем не менее, y_pred просто дает мне все нулы, и я не знаю, почему!
Спасибо за любую помощь или советы, которые вы можете дать. : Вот небольшая выборка данных! : < /p>
train.csv. : < /p>
id,Temparature,Humidity,Moisture,Soil Type,Crop Type,Nitrogen,Potassium,Phosphorous,Fertilizer Name
0,37,70,36,Clayey,Sugarcane,36,4,5,28-28
1,27,69,65,Sandy,Millets,30,6,18,28-28
2,29,63,32,Sandy,Millets,24,12,16,17-17-17
3,35,62,54,Sandy,Barley,39,12,4,10-26-26
4,35,58,43,Red,Paddy,37,2,16,DAP
5,30,59,29,Red,Pulses,10,0,9,20-20
6,27,62,53,Sandy,Paddy,26,15,22,28-28
7,36,62,44,Red,Pulses,30,12,35,14-35-14
8,36,51,32,Loamy,Tobacco,19,17,29,17-17-17
9,28,50,35,Red,Tobacco,25,12,16,20-20
< /code>
test.csv. : < /p>
id,Temparature,Humidity,Moisture,Soil Type,Crop Type,Nitrogen,Potassium,Phosphorous
750000,31,70,52,Sandy,Wheat,34,11,24
750001,27,62,45,Red,Sugarcane,30,14,15
750002,28,72,28,Clayey,Ground Nuts,14,15,4
750003,37,53,57,Black,Ground Nuts,18,17,36
750004,31,55,32,Red,Pulses,13,19,14
750005,35,63,34,Black,Millets,36,3,2
750006,38,50,56,Clayey,Sugarcane,32,6,31
750007,25,55,44,Black,Barley,32,9,32
750008,29,56,60,Red,Pulses,26,5,13
750009,25,63,40,Loamy,Sugarcane,9,5,41


Подробнее здесь: https://stackoverflow.com/questions/796 ... all-zeroes
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»