Пример #1
0
    def predict(self, predict_season: int, latest_episode: int, train_seasons: Set[int]) -> Dict[Player, np.array]:
        train_seasons = {season for season in train_seasons if season >= self.__first_season}
        max_episode = self.__latest_available_episode(predict_season, latest_episode)
        if max_episode == 0 or predict_season < self.__first_season:
            return EmptyMultiLayer().predict(predict_season, latest_episode, train_seasons)

        extractor = AppearanceExtractor(predict_season, max_episode, train_seasons, self.__aug_num_cuts,
                                        self.__aug_min_cuts_on)
        classifier = self.__training(extractor)
        return self.__prediction(extractor, classifier, predict_season)
Пример #2
0
from Layers.Appearance.AppearanceExtractor import AppearanceExtractor
from scipy.stats import norm
import matplotlib.pyplot as plt
import numpy as np

TEST_SEASONS = {13, 14, 15, 16, 17, 18, 19, 20}

extractor = AppearanceExtractor(0, 0, TEST_SEASONS, 1, 1, 0.0)
train_input, train_output = extractor.get_train_data()
non_mol = [
    data[0] for data, label in zip(train_input, train_output) if label == 0.0
]
mol = [
    data[0] for data, label in zip(train_input, train_output) if label == 1.0
]

plt.figure(figsize=(12, 3))
plt.xlabel("Relative Appearance")
plt.ylabel("Is 'mol'")
plt.yticks(np.linspace(0.0, 1.0, 11))
plt.gcf().subplots_adjust(bottom=0.15)

mol_norm = norm.fit(mol)
X = np.linspace(-1.5, 1.0, 500)
mol_Y = [norm.pdf(x, loc=mol_norm[0], scale=mol_norm[1]) for x in X]
plt.plot(X, mol_Y, color='r')

non_mol_norm = norm.fit(non_mol)
non_mol_Y = [
    norm.pdf(x, loc=non_mol_norm[0], scale=non_mol_norm[1]) for x in X
]
Пример #3
0
from Layers.Appearance.AppearanceLayer import InnerAppearanceLayer
from Layers.Appearance.AppearanceExtractor import AppearanceExtractor
from scipy.stats import mannwhitneyu
import matplotlib.pyplot as plt
import numpy as np

TEST_SEASONS = {13, 14, 15, 16, 17, 18, 19, 20}
AUGMENTATION_CUTS = 4
AUGMENTATION_MIN_CUTS_ON = 2
OUTLIER_CUTOFF = 0.01

extractor = AppearanceExtractor(0, 0, TEST_SEASONS, AUGMENTATION_CUTS,
                                AUGMENTATION_MIN_CUTS_ON, OUTLIER_CUTOFF)
train_input, train_output = extractor.get_train_data()
non_mol = [
    data[0] for data, label in zip(train_input, train_output) if label == 0.0
]
mol = [
    data[0] for data, label in zip(train_input, train_output) if label == 1.0
]

plt.figure(figsize=(12, 3))
plt.xlabel("Relative Appearance")
plt.ylabel("Is 'mol'")
plt.yticks(np.linspace(0.0, 1.0, 11))
plt.gcf().subplots_adjust(bottom=0.15)

non_mol_kde = InnerAppearanceLayer.kernel_density_estimation(non_mol)
mol_kde = InnerAppearanceLayer.kernel_density_estimation(mol)
x = InnerAppearanceLayer.get_boundary(non_mol_kde, mol_kde, 10, 0.005,
                                      InnerAppearanceLayer.MIN_VALUE,