<div dir="ltr"><div>I do multi-class classification on unbalanced classes. I'm using SGDClassifier(), GradientBoostingClassifier(), RandomForestClassifier(), and LogisticRegression()with class_weight='balanced'. To compare the results. it is required to compute the accuracy. I tried the following way to compute weighted accuracy:</div><div><br></div><div>n_samples = len(y_train)</div><div>weights_cof = float(n_samples)/(n_classes*np.bincount(data[target_label].as_matrix().astype(int))[1:])</div><div>sample_weights = np.ones((n_samples,n_classes)) * weights_cof</div><div>print accuracy_score(y_test, y_pred, sample_weight=sample_weights)</div><div>y_train is a binary array. So sample_weights has the same shape as y_train (n_samples, n_classes). When I run the script, I received the following error:</div><div><br></div><div><div>Traceback (most recent call last):</div><div>  File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 2016.3.2\helpers\pydev\pydevd.py", line 1596, in <module></div><div>    globals = debugger.run(setup['file'], None, None, is_module)</div><div>  File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 2016.3.2\helpers\pydev\pydevd.py", line 974, in run</div><div>    pydev_imports.execfile(file, globals, locals)  # execute the script</div><div>  File "D:/Destiny/DestinyScripts/MainLocationAware.py", line 424, in <module></div><div>    predict_country(featuresDF, score, featuresLabel, country_sample_size, 'gbc')</div><div>  File "D:/Destiny/DestinyScripts/MainLocationAware.py", line 313, in predict_country</div><div>    print accuracy_score(y_test, y_pred, sample_weight=sample_weights)</div><div>  File "C:\ProgramData\Anaconda2\lib\site-packages\sklearn\metrics\classification.py", line 183, in accuracy_score</div><div>    return _weighted_sum(score, sample_weight, normalize)</div><div>  File "C:\ProgramData\Anaconda2\lib\site-packages\sklearn\metrics\classification.py", line 108, in _weighted_sum</div><div>    return np.average(sample_score, weights=sample_weight)</div><div>  File "C:\ProgramData\Anaconda2\lib\site-packages\numpy\lib\function_base.py", line 1124, in average</div><div>    "Axis must be specified when shapes of a and weights "</div><div>TypeError: Axis must be specified when shapes of a and weights differ.</div></div></div>