classifier=clr_bayes.classifier, k_fold=K) print("----- Naive Bayes Classification -----") print("{} Folds Mean Accuracy: {}".format(K, kfp.accuracy())) print("{} Folds Mean Recall: {}".format(K, kfp.recall())) print("{} Folds Mean Precision: {}".format(K, kfp.precision())) print("{} Folds Mean F1-Score: {}".format(K, kfp.f_score())) # Visualization import HappyML.model_drawer as md md.classify_result(x=X_train, y=Y_train, classifier=clr_bayes.classifier, fg_color=("orange", "blue", "white"), bg_color=("red", "green", "black"), title="訓練集 vs. 貝氏模型", font="DFKai-sb") md.classify_result(x=X_test, y=Y_test, classifier=clr_bayes.classifier, fg_color=("orange", "blue", "white"), bg_color=("red", "green", "black"), title="測試集 vs. 貝氏模型", font="DFKai-sb") # In[] SVM without GridSearch # # from sklearn.svm import SVC # # import time
# In[] Logistic Regression with HappyML's Class from HappyML.regression import LogisticRegressor from HappyML.performance import ClassificationPerformance # Training & Predict regressor = LogisticRegressor() Y_predict = regressor.fit(X_train, Y_train).predict(X_test) # Performance pfm = ClassificationPerformance(Y_test, Y_predict) print("Confusion Matrix:\n", pfm.confusion_matrix()) print("Accuracy: {:.2%}".format(pfm.accuracy())) print("Recall: {:.2%}".format(pfm.recall())) print("Precision: {:.2%}".format(pfm.precision())) print("F1-score: {:.2%}".format(pfm.f_score())) # In[] Visualize the Result import HappyML.model_drawer as md md.classify_result(x=X_train, y=Y_train, classifier=regressor.regressor, title="訓練集樣本點 vs. 模型", font="DFKai-sb") md.classify_result(x=X_test, y=Y_test, classifier=regressor.regressor, title="測試集樣本點 vs. 模型", font="DFKai-sb")
X = selector.fit(x_ary=X, y_ary=Y, verbose=True, sort=True).transform(x_ary=X) X_train, X_test, Y_train, Y_test = pp.split_train_test(x_ary=X, y_ary=Y) X_train, X_test = pp.feature_scaling(fit_ary=X_train, transform_arys=(X_train, X_test)) regressor = LogisticRegressor() Y_pred = regressor.fit(X_train, Y_train).predict(X_test) pfm = ClassificationPerformance(Y_test, Y_pred) print("Confusion Matrix:\n", pfm.confusion_matrix()) print("Accuracy: {:.2%}".format(pfm.accuracy())) print("Recall: {:.2%}".format(pfm.recall())) print("Precision: {:.2%}".format(pfm.precision())) print("F1-score: {:.2%}".format(pfm.f_score())) selector = pp.KBestSelector(best_k=2) X = selector.fit(x_ary=X, y_ary=Y, sort=True).transform(x_ary=X) X_train = selector.transform(X_train) X_test = selector.transform(X_test) regressor = LogisticRegressor() Y_pred = regressor.fit(X_train, Y_train).predict(X_test) md.classify_result(x=X_train, y=Y_train, classifier=regressor.regressor, title="訓練集樣本點 vs. 模型", font="Microsoft JhengHei") md.classify_result(x=X_test, y=Y_test, classifier=regressor.regressor, title="測試集樣本點 vs. 模型", font="Microsoft JhengHei")
#recalls = cross_val_score(estimator=classifier.classifier, X=X, y=Y.values.ravel(), scoring="recall", cv=k_fold, n_jobs=-1) #print("{} Folds Mean Recall: {}".format(k_fold, recalls.mean())) # #precisions = cross_val_score(estimator=classifier.classifier, X=X, y=Y.values.ravel(), scoring="precision", cv=k_fold, n_jobs=-1) #print("{} Folds Mean Precision: {}".format(k_fold, precisions.mean())) # #f_scores = cross_val_score(estimator=classifier.classifier, X=X, y=Y.values.ravel(), scoring="f1", cv=k_fold, n_jobs=-1) #print("{} Folds Mean F1-Score: {}".format(k_fold, f_scores.mean())) from HappyML.performance import KFoldClassificationPerformance K = 10 kfp = KFoldClassificationPerformance(x_ary=X, y_ary=Y, classifier=classifier.classifier, k_fold=K, verbose=False) print("{} Folds Mean Accuracy: {}".format(K, kfp.accuracy())) print("{} Folds Mean Recall: {}".format(K, kfp.recall())) print("{} Folds Mean Precision: {}".format(K, kfp.precision())) print("{} Folds Mean F1-Score: {}".format(K, kfp.f_score())) # In[] Visualization import HappyML.model_drawer as md md.classify_result(x=X_train, y=Y_train, classifier=classifier, title="訓練集 vs. 模型", font='DFKai-sb') md.classify_result(x=X_test, y=Y_test, classifier=classifier, title="測試集 vs. 模型", font='DFKai-sb') # In[] Check for Variables Independence from HappyML.criteria import AssumptionChecker checker = AssumptionChecker(x_train=X_train, x_test=X_test, y_train=Y_train, y_test=Y_test, y_pred=Y_pred) checker.features_correlation(heatmap=True)
X_train, X_test = pp.feature_scaling(fit_ary=X_train, transform_arys=(X_train, X_test)) classifier = NaiveBayesClassifier() Y_pred = classifier.fit(X_train, Y_train).predict(X_test) K = 10 Kfp = KFoldClassificationPerformance(X, Y, classifier.classifier, K) print("{} Folds Mean Accuracy: {}".format(K, Kfp.accuracy())) print("{} Folds Mean Recall: {}".format(K, Kfp.recall())) print("{} Folds Mean Precision: {}".format(K, Kfp.precision())) print("{} Folds Mean F1-Score: {}".format(K, Kfp.f_score())) checker = AssumptionChecker(X_train, X_test, Y_train, Y_test, Y_pred) checker.features_correlation() selector = pp.KBestSelector(best_k=2) X = selector.fit(X, Y, False, True).transform(X) X_train = selector.transform(X_train) X_test = selector.transform(X_test) X_train, X_test = pp.feature_scaling(fit_ary=X_train, transform_arys=(X_train, X_test)) classifier = NaiveBayesClassifier() Y_pred = classifier.fit(X_train, Y_train).predict(X_test) md.classify_result(x=X_train, y=Y_train, classifier=classifier, title="訓練集 vs. 模型", font="Microsoft JhengHei") md.classify_result(x=X_test, y=Y_test, classifier=classifier, title="測試集 vs. 模型", font="Microsoft JhengHei")