 (0.1, 0.07), should investigate why KNN MODEL<jupyter_code>from KNN.knnModel import PredictiveModel as knnPredictiveModel
def knn_prepare_data(population):
    """
    this prepare data to be fed inside a KNN
    Args: subset of (rows) of train
    Return: X,Y
    """
    to_drop = ["Unnamed: 0", "dataset_type", "Name", "RescuerID", "Description","PetID"]

    X = population.drop(["AdoptionSpeed"] + to_drop, axis=1)
    if 'Type' in X.columns: X = X.drop('Type', axis=1)
    Y = population['AdoptionSpeed']
    X = X.reset_index().drop('index',axis=1)
    Y = Y.reset_index().drop('index',axis=1)['AdoptionSpeed']
    return X,Y

def knn_run(population):
    """
    this validate KNN on given population
    Args: subset of (rows) of train
    Return: score
    """
    X,Y = knn_prepare_data(population)
    model = knnPredictiveModel("knn", 100)
    return model.validation(X, Y, method=2, verbose=False)
knn_cats_score, knn_dogs_score, knn_score = knn_run(cats),  knn_run(dogs), knn_run(train)
knn_cats_score, knn_dogs_score, knn_score<jupyter_output><empty_output><jupyter_text>I applied the same intuition on KNN and it worked good, the total score is 0.13 but only on dogs is 0.16 and only on cats 0.09! investigate why they are so different. More importantly NB is good on cats and KNN is good on dogs, how is this possible since they are given the same features? investigate why NB and KNN behave differently Prediction analysis<jupyter_code>split = int(len(train)*0.8)
train_X, train_Y = train[:split],   train[:split]['AdoptionSpeed']
test_X,  test_Y  = train[split+1:], train[split+1:]['AdoptionSpeed']
#knn
X, Y = knn_prepare_data(train_X)
model = knnPredictiveModel("knn_proba", 100)
model.train(X, Y)
test, labels = knn_prepare_data(test_X)
knn_proba = model.predict(test, probability=True)
knn_labels = model.predict(test, probability=False)
#NB
X, Y = nb_prepare_data(train_X)
model = naiveBayesEnsemblePredictiveModel("nb_proba")
model.train(X, Y,mapping_sizes,verbose=False)
test, labels = nb_prepare_data(test_X)
nb_proba = model.predict(test, probability=True)
nb_labels = model.predict(test, probability=False)
knn_labels
nb_labels
circles = Counter([*zip(knn_labels, nb_labels)])
from matplotlib import pyplot as plt
from operator import truediv
fig, ax = plt.subplots(figsize=(7,7))
ax.set_xlim((0.5, 5))
ax.set_ylim((0.5, 5))
plt.xlabel("predictions by knn")
plt.ylabel("predictions by nb")
for key,val in circles.items():
    circle = plt.Circle(key,truediv(val,1000))
    ax.add_artist(circle)<jupyter_output><empty_output><jupyter_text>the plot above is interesting. So we know KNN and NB are pretty different in predicting classes, but HOW are they different? I tried to do a scatter plot of their predictions as shown in the video linked at the top. The scatter plot has on X axis the predictions of KNN and on Y predictions of NB. The size of a the circle in (x,y) means: how many predictions from KNN are x and at the same time the predictions from NB are y? If the two models would be similar the scatter plot would have points only on the diagonal (prediction of NB == prediction of KNN). In this case we see how there is many (x,y) not on the diagonal, this means that the two models are behaving really different! we should explore why they behave differently<jupyter_code>correct_knn = knn_labels == np.array(test_Y)
correct_nb = nb_labels == np.array(test_Y)
correct_preds = np.logical_or(correct_knn, correct_nb)
np.bincount(correct_preds),np.bincount(correct_knn), np.bincount(correct_nb)
correct_knn_labels = knn_labels[correct_preds]
correct_nb_labels = nb_labels[correct_preds]
circles = Counter([*zip(correct_knn_labels, correct_nb_labels)])
from matplotlib import pyplot as plt
from operator import truediv
fig, ax = plt.subplots(figsize=(7,7))
ax.set_xlim((0.5, 5))
ax.set_ylim((0.5, 5))
plt.xlabel("correct predictions by knn")
plt.ylabel("correct predictions by nb")
for key,val in circles.items():
    circle = plt.Circle(key,truediv(val,600))
    ax.add_artist(circle)<jupyter_output><empty_output>This is Iron Horse, a very strong isopropyl bottle of poppers.
The very popular square bottle design.
You can pre-order this item and it will be shipped to you immediately when new stock arrives, usually within 1-2 weeks.
A great choice for anyone looking for great poppers. This bottle is very strong and contains isopropyl nitrite. If you want poppers with a delayed effect, this is for you.
Try this new bottle today, we can deliver same-day in Metro Manila or Greater Manila area. We also have fast shipping nationwide. If you're interested in other choices, we have large selection of poppers for sale for the Philippines..container {
  flex: 1;
  justify-content: center;
  align-items: center;
  background-color: #F5FCFF;
  margin: 10 5;
  -ios-shadow-opacity: 4;
  -ios-shadow-offset: 2 4;
  -android-elevation: 1;
}This weeks spinning training was disappointing. I had a hard time controlling my heart rate when cycling in single step (one step per beat). I experienced a few jumps in my heart rate when standing up or sitting back down, where my heart rate would drop by 10-20 beats which I attribute to measurement errors, but on the other site this artifact was repeated reliably. During spinning I was wondering if that could be linked to a great tension in my legs, which would be released during position changes. Much of the training was in single step and when sitting I had to put awfully much resistance on the bike and even then I could not keep my heart rate in the target zone (I believe this is visible as drops marked with arrows on the graph below). With the resistance at the limit where I would no longer keep track with the beat I could only keep the heart rate at around 86% when I was supposed to keep it at 88%. It was easier when standing up, even if I still found it hard to hit the target heart rate. I had to pay the toll for the great resistance by not being able to keep my legs moving fast enough in the second last sprint at the end of the training, visible by not peaking. For the very last sprint I decreased the resistance dramatically and compensated with a high cadence.
When I compared my graph with the intended program I was surprised to see that at least was close, even if it didn’t feel like that during training. But from the comparison below it’s also visible that I didn’t managed to get the heart rate into the max-zone very often. All in all not very satisfying.
Carlton coach Brendon Bolton has unveiled his new coaching team, along with a restructure of the Club’s fitness department.
Over the past month, Bolton has been working closely with Head of Football Andrew McKay and Carlton triple premiership player Ken Sheldon, to get the best possible coaching personnel in place and after a rigorous interview process four new appointments have been made.
Former Adelaide coach Neil Craig has been appointed as the new Director of Coaching, Development and Performance. Craig, a