| # Licensed to the Apache Software Foundation (ASF) under one | |
| # or more contributor license agreements. See the NOTICE file | |
| # distributed with this work for additional information | |
| # regarding copyright ownership. The ASF licenses this file | |
| # to you under the Apache License, Version 2.0 (the | |
| # "License"); you may not use this file except in compliance | |
| # with the License. You may obtain a copy of the License at | |
| # | |
| # http://www.apache.org/licenses/LICENSE-2.0 | |
| # | |
| # Unless required by applicable law or agreed to in writing, | |
| # software distributed under the License is distributed on an | |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
| # KIND, either express or implied. See the License for the | |
| # specific language governing permissions and limitations | |
| # under the License. | |
| import numpy as np | |
| import pandas as pd | |
| from sklearn import base, metrics | |
| def y_train_estimation( | |
| trained_model: base.ClassifierMixin, train_set: pd.DataFrame, target_column_name: str | |
| ) -> np.ndarray: | |
| feature_cols = [c for c in train_set.columns if c != target_column_name] | |
| return trained_model.predict(train_set[feature_cols]) | |
| def y_train(train_set: pd.DataFrame, target_column_name: str) -> pd.Series: | |
| return train_set[target_column_name] | |
| def cm_train(y_train: pd.Series, y_train_estimation: np.ndarray) -> np.ndarray: | |
| return metrics.confusion_matrix(y_train, y_train_estimation) | |
| def y_test_estimation( | |
| trained_model: base.ClassifierMixin, test_set: pd.DataFrame, target_column_name: str | |
| ) -> np.ndarray: | |
| feature_cols = [c for c in test_set.columns if c != target_column_name] | |
| return trained_model.predict(test_set[feature_cols]) | |
| def y_test(test_set: pd.DataFrame, target_column_name: str) -> pd.Series: | |
| return test_set[target_column_name] | |
| def cm_test(y_test: pd.Series, y_test_estimation: np.ndarray) -> np.ndarray: | |
| return metrics.confusion_matrix(y_test, y_test_estimation) | |
| def model_predict(trained_model: base.ClassifierMixin, inference_set: pd.DataFrame) -> np.ndarray: | |
| return trained_model.predict(inference_set) | |
| def confusion_matrix_test_plot(cm_test: np.ndarray) -> metrics.ConfusionMatrixDisplay: | |
| return metrics.ConfusionMatrixDisplay(cm_test) | |
| def confusion_matrix_training_plot(cm_train: np.ndarray) -> metrics.ConfusionMatrixDisplay: | |
| return metrics.ConfusionMatrixDisplay(cm_train) |