Точность и показатель F1 составляют 100%, независимо от того, какие изменения сделаны - PullRequest
0 голосов
/ 23 апреля 2019

Я написал скрипт, который создает модель регрессора случайных лесов.

Проблема в том, что я получаю 1,00 для точности и измерения f1 независимо от того, какие изменения я делаю.При изменении типа модели, размера теста, строк и столбцов, включенных в набор данных, они остаются прежними.

Я подозреваю, что сделал что-то не так.Я хотел бы знать, при каких обстоятельствах это может произойти.

текущие результаты:

Report:
               precision    recall  f1-score   support

           1       1.00      1.00      1.00         1

   micro avg       1.00      1.00      1.00         1
   macro avg       1.00      1.00      1.00         1
weighted avg       1.00      1.00      1.00         1

Accuracy:   1.0

Сценарий выглядит следующим образом:

import pandas as pd  
import numpy as np  
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import classification_report
from sklearn.metrics import accuracy_score
from sklearn import preprocessing

dataset = pd.read_csv("./Data/Assignment2DataSets/216037514.csv")  

print(len(dataset))

dataset["RainTomorrow"] = dataset["RainTomorrow"].astype('category')
dataset["RainTomorrow"] = dataset["RainTomorrow"].cat.codes

dataset.dropna(inplace=True)

dataset = pd.get_dummies(dataset, columns=["Date", "Location", "RainToday", "WindGustDir", "WindDir9am", "WindDir3pm"], prefix=["Date", "Loc", "RTod", "WGD", "WD9am", "WD3pd"])

X = dataset.drop('RainTomorrow', axis=1)

y = dataset['RainTomorrow'] # Line must stay the same

train_test_split(X,y,test_size=0.20, random_state=STUDENTNUMBER)
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.20, random_state=216037514)

classifier = RandomForestRegressor(n_estimators = 100, random_state = 216037514)

classifier.fit(X_train,y_train) # Line must stay the same

y_pred = classifier.predict(X_test) # Line must stay the same

print("Report:\n", classification_report(y_test,y_pred))
print("Accuracy:  ", accuracy_score(y_test,y_pred))
...