daily pastebin goal
46%
SHARE
TWEET

Untitled

a guest Mar 20th, 2019 60 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #Una analisi della correlazione non sarebbe male
  2. #Si potrebbe creare un plot che  permette di selezionare le variabili
  3. #e in funzione di questa ti plotta la correlazione
  4. #oltre che a una heat map
  5. #Adesso possiamo passare alla parte di Machine Learning
  6. #In primis andiamo a definire due funzioni
  7. #La funzione get_prediction
  8.  
  9. #Che effettuerà il training sulla base del
  10. #classificatore scelto
  11. #E la funzione print_scores
  12. #Che permetterà di valutare
  13. #sulla base di diversi test_score
  14. #Il classificatore migliore
  15.  
  16.  
  17. def get_predictions(clf, count_train, y_train, count_test):
  18.     # creiamo il classificatore
  19.     clf = clf
  20.     # lo alleniamo con i dati di training
  21.     clf.fit(count_train,y_train)
  22.     # effettuiamo le predizioni con i dati di test
  23.     y_pred = clf.predict(count_test)
  24.     # Calcoliamo la probabilità delle predizioni: y_pred_prob
  25.     y_pred_prob = clf.predict_proba(count_test)
  26.    
  27.     return y_pred, y_pred_prob
  28. def print_scores(y_test,y_pred,y_pred_prob):
  29.     conf_matrix=confusion_matrix(y_test,y_pred)
  30.     recall= recall_score(y_test,y_pred)
  31.     precision= precision_score(y_test,y_pred)
  32.     f1=f1_score(y_test,y_pred)
  33.     accuracy= accuracy_score(y_test,y_pred)
  34.     roc= roc_auc_score(y_test, y_pred_prob[:,1])
  35.     print('test-set confusion matrix:\n',conf_matrix )
  36.     print("recall score: ",recall )
  37.     print("precision score: ", precision)
  38.     print("f1 score: ",f1 )
  39.     print("accuracy score: ",   accuracy)
  40.     print("ROC AUC: {}".format(roc_auc_score(y_test, y_pred_prob[:,1])))
  41.     kpi=pd.DataFrame([[recall,precision,f1,accuracy,roc]], columns=['Recall','Precision','F1_Score','Accuracy','ROC-AUC'])
  42.     return kpi
  43.  
  44. #Definiamo la lista dei classificatori che vogliamo valutare
  45. list_classifier=[MultinomialNB(),LogisticRegression(),RandomForestClassifier(),RandomForestClassifier(criterion='entropy')]
  46. names=['MultinomialNaiveBayes','Logistic Regression', 'Random Forest Classifier', 'Random Forest Classifier crit=Entropy']
  47. #Definiamo la colonna degli output
  48. y_name='Occupancy'
  49. #Creiamo un df di allenamento rimuovendo la variabile temporale
  50. df_train=df_train.drop(['date'], axis=1).copy()
  51. #Creiamo un df di test rimuovendo la variabil temporale
  52. df_test=df_test.drop(['date'], axis=1).copy()
  53. #Definiamo il set di dati di input per l'allenamento
  54. X_train=df_train[df_train.columns.difference([y_name])]
  55. #Definiamo il set di dati di input per il test
  56. X_test=df_test[df_test.columns.difference([y_name])]
  57. #Definiamo il set di dati di output per l'allenamento
  58. y_train=df_train[y_name]
  59. #Definiamo il set di dati di output per il testing
  60. y_test=df_test[y_name]
  61. print(X_train.describe())
  62. print("len_y train",len(y_train))
  63. print('X Test describe:')
  64. print(X_test.describe())
  65.  
  66. results_df=pd.DataFrame(columns=['Classifier','Recall','Precision','F1_Score','Accuracy','ROC-AUC'])
  67. performance=pd.DataFrame()
  68. for name, clf in zip(names,list_classifier):
  69.         print('Classifier used',name)
  70.         print()
  71.         y_pred, y_pred_prob = get_predictions(clf, X_train, y_train, X_test)
  72.        
  73.         classifier=name
  74.         loop_performance=pd.DataFrame()
  75.         loop_performance=print_scores(y_test,y_pred,y_pred_prob)
  76.         loop_performance['Classifier']=name
  77.         performance=performance.append(loop_performance)
  78.         print('__________________')
  79.        
  80. print(performance)
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top