Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

NameError: name \'cross_val_score\' is not defined Code import pandas as pd impo

ID: 3710081 • Letter: N

Question

NameError: name 'cross_val_score' is not defined

Code

import pandas as pd
import numpy as np
from sklearn.tree import DecisionTreeClassifier
clf = DecisionTreeClassifier(random_state=14)

dataset = pd.read_csv("info.csv", parse_dates=[0],
skiprows=[0, ])
# print (dataset)
dataset.columns = ["Visitor Team", "VisitorPts", "Home Team", "HomePts"]

dataset.ix[:5]

dataset["HomeWin"] = dataset["VisitorPts"] < dataset["HomePts"]
y_true = dataset["HomeWin"].values

from collections import defaultdict

won_last = defaultdict(int)

dict_variable = {}

for index, row in dataset.iterrows():
# remove two print lines below if you don't need them
# I have included them to show the output on terminal
#print index
#print row
home_team = row["Home Team"]
visitor_team = row["Visitor Team"]
row["HomeLastWin"] = won_last[home_team]
row["VisitorLastWin"] = won_last[visitor_team]
dataset.ix[index] = row
won_last[home_team] = row["HomeWin"]
won_last[visitor_team] = not row["HomeWin"]

from collections import defaultdict
won_last = defaultdict(int)

for index, row in dataset.iterrows():
home_team = row["Home Team"]
visitor_team = row["Visitor Team"]
row["HomeLastWin"] = won_last[home_team]
row["VisitorLastWin"] = won_last[visitor_team]
dataset.ix[index] = row
won_last[home_team] = row["HomeWin"]
won_last[visitor_team] = not row["HomeWin"]
X_previouswins = dataset[["HomeLastWin", "VisitorLastWin"]].values

scores = cross_val_score(clf, X_previouswins, y_true,
scoring='accuracy')
print("Accuracy: {0:.1f}%".format(np.mean(scores) * 100))

Explanation / Answer

after this if there is another error about array indices

Apparently you are using an old version of scikit-learn, niw this error isn't persisting anymore.

the first solution should do the trick, but do the second one if you face the array indices error.