Spaces:
Runtime error
Runtime error
| import numpy as np | |
| import pandas as pd | |
| from sklearn.impute import SimpleImputer | |
| from sklearn.preprocessing import LabelEncoder | |
| from sklearn.preprocessing import StandardScaler | |
| from sklearn.model_selection import train_test_split | |
| from sklearn.ensemble import RandomForestClassifier | |
| from sklearn.metrics import accuracy_score | |
| import gradio as gr | |
| def rainPrediction(fileCSVName): | |
| #Importing necessary libraries | |
| #Storing the values from the dataset in a variable | |
| if fileCSVName == "weatherAUS.csv": | |
| dataset = pd.read_csv("/weatherAUS.csv") | |
| #D | |
| X = dataset.iloc[:,[1,2,3,4,7,8,9,10,11,12,13,14,15,16,18,19,20,21]].values | |
| Y = dataset.iloc[:,-1].values | |
| #Reshaping Y from a 1-dimensional(a[n]) array into a 2-dimensional(a[n][m]) array | |
| Y = Y.reshape(-1,1) | |
| #Removing NA from the dataset and replacing it with the most frequent value in that column | |
| imputer = SimpleImputer(missing_values=np.nan,strategy='most_frequent') | |
| X = imputer.fit_transform(X) | |
| Y = imputer.fit_transform(Y) | |
| #Encoding non-numerical(i.e: W,WNW) values into numerical values(i.e: 1,2,3,4) | |
| le1 = LabelEncoder() | |
| X[:,0] = le1.fit_transform(X[:,0]) | |
| le2 = LabelEncoder() | |
| X[:,4] = le2.fit_transform(X[:,4]) | |
| le3 = LabelEncoder() | |
| X[:,6] = le3.fit_transform(X[:,6]) | |
| le4 = LabelEncoder() | |
| X[:,7] = le4.fit_transform(X[:,7]) | |
| le5 = LabelEncoder() | |
| X[:,-1] = le5.fit_transform(X[:,-1]) | |
| le6 = LabelEncoder() | |
| Y = le6.fit_transform(Y) | |
| #Feature scaling to minimize data scattering | |
| sc = StandardScaler() | |
| X = sc.fit_transform(X) | |
| #Dividing the dataset into 2 parts namely training data and testing data | |
| X_train,X_test,Y_train,Y_test = train_test_split(X,Y,test_size=0.2,random_state=0) | |
| #Training our model | |
| classifier = RandomForestClassifier(n_estimators=100,random_state=0) | |
| classifier.fit(X_train,Y_train) | |
| classifier.score(X_train,Y_train) | |
| Y_test = Y_test.reshape(-1,1) | |
| Y_pred = classifier.predict(X_test) | |
| Y_pred = le6.inverse_transform(Y_pred) | |
| Y_test = le6.inverse_transform(Y_test) | |
| Y_test = Y_test.reshape(-1,1) | |
| Y_pred = Y_pred.reshape(-1,1) | |
| #Concatenating our test and prediction result into a dataset | |
| df = np.concatenate((Y_test,Y_pred),axis=1) | |
| dataframe = pd.DataFrame(df,columns=['Rain Tomorrow','Rain Prediction']) | |
| #Checking the accuracy | |
| print(accuracy_score(Y_test,Y_pred)) | |
| #Print .csv file | |
| #answer = dataframe.to_csv("predictions.csv") | |
| # return pd.read_csv("predictions.csv") | |
| return dataframe | |
| app = gr.Interface(rainPrediction, "text", gr.outputs.Dataframe(headers=["Rain Tomorrow", "Rain Prediction"],label="All data")) | |
| app.launch(debug=True) |