Python Forum

Full Version: SCIKItlearn -Naive Bayes Accuracy (Weather Data)
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
import numpy as np

import pandas as pd

from sklearn.naive_bayes import GaussianNB

from sklearn.preprocessing import LabelEncoder

from sklearn.model_selection import train_test_split

from sklearn.metrics import accuracy_score




#play_tennis = pd.read_csv("PlayTennis.csv")
#play_tennis = pd.read_csv("weather3.csv")
play_tennis = pd.read_csv("sampleweatherforecast.csv")

play_tennis.head()


#number = LabelEncoder()

#play_tennis['Outlook'] = number.fit_transform(play_tennis['Outlook'])

#play_tennis['Temperature'] = number.fit_transform(play_tennis['Temperature'])

#play_tennis['Humidity'] = number.fit_transform(play_tennis['Humidity'])

#play_tennis['Wind'] = number.fit_transform(play_tennis['Wind'])

#play_tennis['Play Tennis'] = number.fit_transform(play_tennis['Play Tennis'])


#features = ["Outlook", "Temperature", "Humidity", "Wind"]
#features = ["Outlook", "Temperature","Humidity"]
features = ["outlook", "temp"]

target = "play"


features_train, features_test, target_train, target_test = train_test_split(play_tennis[features],play_tennis[target],test_size = 0.2,random_state = 54)



model = GaussianNB()

model.fit(features_train, target_train)


pred = model.predict(features_test)

accuracy = accuracy_score(target_test, pred)


features_test['predicted']=pred
print(accuracy)

#print(model.predict([[1,2,0,1]]))


#features_train.to_csv(r"D:\Usman\Export\trainweather.csv")
#features_test.to_csv(r"D:\Usman\Export\testweather.csv")


features_train.to_csv(r"D:\Usman\Export\trainweather-new.csv")
features_test.to_csv(r"D:\Usman\Export\testweather-new.csv")
[Image: view?usp=sharing]

We have our testing data which is matched to training data
But still we see that the above python script gave me 60 % Accuracy only.

Any idea how to get the 100 % Accuracy