如何评估正在训练某些数据的软投票分类器

时间:2017-08-05 12:42:47

标签: python scikit-learn classification data-science

我已经采用了3种分类模型,

$html = '<div><span style="color:red">Lorem ipsum dolor sit amet, elit</span>consectetur adipiscing</div>';
$word = 'dolor';
$replace = '#### banana ####';

try{

    libxml_use_internal_errors( true );

    $dom=new DOMDocument;
    $dom->preserveWhiteSpace = false;
    $dom->validateOnParse = false;
    $dom->standalone=true;
    $dom->strictErrorChecking=true;
    $dom->substituteEntities=true;
    $dom->recover=true;
    $dom->formatOutput=false;
    $dom->loadHTML( $html );

    $errors = libxml_get_errors();
    libxml_clear_errors();


    if( !empty( $errors ) ) {
        throw new Exception( implode( PHP_EOL, $errors ) );
    }
    $xp=new DOMXPath( $dom );

    /* The XPath expression */
    $query='//div/span[ contains( text(),"'.$word.'") ]';

    $col=$xp->query( $query );
    if( !empty( $col ) ){
        foreach( $col as $index => $node ){
            $node->nodeValue = str_replace( $word, $replace, $node->nodeValue );
        }

        /* output to browser or save to file */
        echo $dom->saveHTML();  

    } else {
        throw new Exception( sprintf( 'Empty nodelist - XPath query %s failed', $query ) );
    }
    $dom=$xp=null;
}catch( Exception $e ){
    printf( 'Caught Exception -> Trace:%s Message:%s Code:%d', $e->getTraceAsString(), $e->getMessage(), $e->getCode() );
}

我将它们作为参数传递给投票分类器并选择软投票。

clf1 = DecisionTreeClassifier(max_depth=4)
clf2 = KNeighborsClassifier(n_neighbors=7)
clf3 = SVC(kernel='rbf', probability=True)

这里我收到错误,AttributeError:'VotingClassifier'对象有     没有属性'best_score_'

eclf = VotingClassifier(estimators=[('dt', clf1), ('knn', clf2), ('svc', clf3)], voting='soft', weights=[2,1,2])

clf1 = clf1.fit(titanic_train1,y_train)
clf2 = clf2.fit(titanic_train1,y_train)
clf3 = clf3.fit(titanic_train1,y_train)
eclf = eclf.fit(titanic_train1,y_train)

我想找到这个模型的最佳调整参数?

1 个答案:

答案 0 :(得分:-1)

VotingClassifier没有best_score_属性。您可以查看scikit-learn文档here,以查看缺少best_score_属性。

如果您正在尝试获得交叉验证分数,则需要使用K-FoldGridSearchCV之类的内容,其中K-Fold会让您了解分类器对天真数据的概括程度以及GridSearchCV将帮助确定模型的最佳参数配置。