Answered step by step
Verified Expert Solution
Link Copied!
Question
1 Approved Answer

In PYTHON, I am trying to debug this error for a while now. Can someone help with debugging this? I got this code from this

In PYTHON, I am trying to debug this error for a while now. Can someone help with debugging this? I got this code from this website http://www.semspirit.com/artificial-intelligence/machine-learning/classification/classifier-evaluation/classifier-evaluation-with-cap-curve-in-python/

import matplotlib.pyplot as plt from scipy import integrate #calculus integration

def capcurve(y_values, y_preds_proba): num_pos_obs = np.sum(y_values) num_count = len(y_values) rate_pos_obs = float(num_pos_obs) / float(num_count) ideal = pd.DataFrame({'x':[0,rate_pos_obs,1],'y':[0,1,1]}) xx = np.arange(num_count) / float(num_count - 1)

y_cap = np.c_[y_values,y_preds_proba] y_cap_df_s = pd.DataFrame(data=y_cap) y_cap_df_s = y_cap_df_s.sort_values([1], ascending=False).reset_index('index', drop=True) print(y_cap_df_s.head(20))

yy = np.cumsum(y_cap_df_s[0]) / float(num_pos_obs) yy = np.append([0], yy[0:num_count-1]) #add the first curve point (0,0) : for xx=0 we have yy=0

percent = 0.5 row_index = np.trunc(num_count * percent)

val_y1 = yy[row_index] val_y2 = yy[row_index+1] if val_y1 == val_y2: val = val_y1*1.0 else: val_x1 = xx[row_index] val_x2 = xx[row_index+1] val = val_y1 + ((val_x2 - percent)/(val_x2 - val_x1))*(val_y2 - val_y1)

sigma_ideal = 1 * xx[num_pos_obs - 1 ] / 2 + (xx[num_count - 1] - xx[num_pos_obs]) * 1 sigma_model = integrate.simps(yy,xx) sigma_random = integrate.simps(xx,xx)

ar_value = (sigma_model - sigma_random) / (sigma_ideal - sigma_random) #ar_label = 'ar value = %s' % ar_value

fig, ax = plt.subplots(nrows = 1, ncols = 1) ax.plot(ideal['x'],ideal['y'], color='grey', label='Perfect Model') ax.plot(xx,yy, color='red', label='User Model') #ax.scatter(xx,yy, color='red') ax.plot(xx,xx, color='blue', label='Random Model') ax.plot([percent, percent], [0.0, val], color='green', linestyle='--', linewidth=1) ax.plot([0, percent], [val, val], color='green', linestyle='--', linewidth=1, label=str(val*100)+'% of positive obs at '+str(percent*100)+'%')

plt.xlim(0, 1.02) plt.ylim(0, 1.25) plt.title("CAP Curve - a_r value ="+str(ar_value)) plt.xlabel('% of the data') plt.ylabel('% of positive obs') plt.legend() plt.show()

--------------------------------------------------------------------------------

y_probablity =classifier.predict_proba(X_test) capcurve(y_test, y_probablity[:,1])

----------------------------------------------------------------------------------

KeyError Traceback (most recent call last)  in () 1 y_probablity =classifier.predict_proba(X_test) ----> 2 capcurve(y_test, y_probablity[:,1])  in capcurve(y_values, y_preds_proba) 11 y_cap = np.c_[y_values,y_preds_proba] 12 y_cap_df_s = pd.DataFrame(data=y_cap) ---> 13 y_cap_df_s = y_cap_df_s.sort_values([1], ascending=False).reset_index('index', drop=True) 14 15 print(y_cap_df_s.head(20)) C:\ANACONDA\lib\site-packages\pandas\core\frame.py in reset_index(self, level, drop, inplace, col_level, col_fill) 4096 if not isinstance(level, (tuple, list)): 4097 level = [level] -> 4098 level = [self.index._get_level_number(lev) for lev in level] 4099 if isinstance(self.index, MultiIndex): 4100 if len(level) < self.index.nlevels: C:\ANACONDA\lib\site-packages\pandas\core\frame.py in (.0) 4096 if not isinstance(level, (tuple, list)): 4097 level = [level] -> 4098 level = [self.index._get_level_number(lev) for lev in level] 4099 if isinstance(self.index, MultiIndex): 4100 if len(level) < self.index.nlevels: C:\ANACONDA\lib\site-packages\pandas\core\indexes\base.py in _get_level_number(self, level) 1944 1945 def _get_level_number(self, level): -> 1946 self._validate_index_level(level) 1947 return 0 1948 C:\ANACONDA\lib\site-packages\pandas\core\indexes\base.py in _validate_index_level(self, level) 1941 elif level != self.name: 1942 raise KeyError('Level %s must be same as name (%s)' % -> 1943 (level, self.name)) 1944 1945 def _get_level_number(self, level): KeyError: 'Level index must be same as name (None)'

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image
Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image_2

Step: 3

blur-text-image_3

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Beginning C# 5.0 Databases

Authors: Vidya Vrat Agarwal

2nd Edition

1430242604, 978-1430242604

More Books

Students also viewed these Databases questions

Question

=+How might these stem from country and regional cultures?

Answered: 1 week ago