Я написал скрипт, который создает модель регрессора случайных лесов.
Проблема в том, что я получаю 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))