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.
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.