compute_class_weight() takes 1 positional argument but 3 were given
调用sklearn的compute_class_weight提示错误”compute_class_weight() takes 1 positional argument but 3 were given“
这是因为comput_class_weight传入的时候最好把关键字带上,如果不带上关键字,可以会被认为只有一个参数,这是sklearn中的源码。
def compute_class_weight(class_weight, *, classes, y): """Estimate class weights for unbalanced datasets. Parameters ---------- class_weight : dict, balanced or None If balanced, class weights will be given by ``n_samples / (n_classes * np.bincount(y))``. If a dictionary is given, keys are classes and values are corresponding class weights. If None is given, the class weights will be uniform. classes : ndarray Array of the classes occurring in the data, as given by ``np.unique(y_org)`` with ``y_org`` the original class labels. y : array-like of shape (n_samples,) Array of original class labels per sample. Returns ------- class_weight_vect : ndarray of shape (n_classes,) Array with class_weight_vect[i] the weight for i-th class. References ---------- The "balanced" heuristic is inspired by Logistic Regression in Rare Events Data, King, Zen, 2001. """
后面发现是传入y的参数的时候,label是2维的,label的维度是(1000,1)要把它变成(1000,)就可以。
labels = np.zeros((200,1)) labels[0:2][0] = 1 classes = [0, 1] weight = compute_class_weight(class_weight=balanced, classes=classes, y=label.reshape(-1) print(weight)
上一篇:
JS实现多线程数据分片下载
下一篇:
反射的基本介绍和获取Class的实例