小编Orl*_*doL的帖子

使用xgboost进行校准

我想知道我是否可以在xgboost中进行校准.更具体地讲,确实xgboost来与现有的校准实现像scikit学习,还是有把从xgboost模型为scikit学习的CalibratedClassifierCV一些方法?

据我所知,在sklearn这是常见的程序:

# Train random forest classifier, calibrate on validation data and evaluate
# on test data
clf = RandomForestClassifier(n_estimators=25)
clf.fit(X_train, y_train)
clf_probs = clf.predict_proba(X_test)
sig_clf = CalibratedClassifierCV(clf, method="sigmoid", cv="prefit")
sig_clf.fit(X_valid, y_valid)
sig_clf_probs = sig_clf.predict_proba(X_test)
sig_score = log_loss(y_test, sig_clf_probs)
print "Calibrated score is ",sig_score
Run Code Online (Sandbox Code Playgroud)

如果我将一个xgboost树模型放入CalibratedClassifierCV中,则会抛出错误(当然):

RuntimeError: classifier has no decision_function or predict_proba method.

有没有办法将scikit-learn的优秀校准模块与xgboost集成?

欣赏您富有洞察力的想法!

scikit-learn xgboost

10
推荐指数
1
解决办法
3352
查看次数

AWS SNS 如何在消息中添加换行符

我正在尝试通过 CLI 以 json 格式发送 SNS 消息。

aws sns publish --cli-input-json "{\"TopicArn\":\"xxx\",\"Message\":\"first line\n second line\",\"Subject\":\"Empty subject\"}"
Run Code Online (Sandbox Code Playgroud)

但是 \n 不起作用。"\r\n" 或 "\n" 都不是。我认为该字符串已被 SNS 转义,因此 \n 不起作用。有谁知道如何发送 2 行消息?(发送 2 条消息不是一种选择)感谢您的建议!

json amazon-web-services amazon-sns

6
推荐指数
1
解决办法
6965
查看次数

从sortedmap获取前n个元素

我试图在TreeMap中存储字符串的频率,以便我可以获得最常用的字符串,比如说,特定用户.现在我想要做的是编写一个方法,从排序后的地图中返回前n个项目(最常用).

public TreeMap<String,Integer> getKeywords(int n){
     //Can check if sorted for efficiency!

    println keywords.size();
    keywords=keywords.sort{a,b->
        //sort the map desc by value
        b.value <=> a.value;
    }
    TreeMap<String,Integer> result=new TreeMap<>();
    //need to fill result with first n elements from keywords
    return result;
}
Run Code Online (Sandbox Code Playgroud)

我尝试了几种方法,比如使用.each()关键字或迭代其keySet,但没有保留其原始顺序,我最终得到的结果未排序.帮助和提示表示赞赏!!

groovy treemap

1
推荐指数
1
解决办法
1367
查看次数

Grails在"create"和"save"之间更新的实例

我想知道,在脚手架控制器和视图中,您在"创建"页面中填写的字段如何在保存操作之前更新到您的域类实例.我在Grails 2.4.4上.

举个例子,我有一个名为Customer的类,我生成控制器并以默认方式查看所有内容.

class Customer {
    String name;
    String email;
    String address;
    String mobile;
}
Run Code Online (Sandbox Code Playgroud)

当您运行应用程序并在生成的绿色样式索引页面中,单击"创建新客户"时,将创建一个客户实例,因为链接将转到"创建"操作.

<ul>
    <li><a class="home" href="${createLink(uri: '/')}"><g:message code="default.home.label"/></a></li>
    <li><g:link class="create" action="create"><g:message code="default.new.label" args="[entityName]" /></g:link></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

在控制器中:

def create() {
    log.info "A customer object is created here.";
    Customer c=new Customer(params)
    respond c
}
Run Code Online (Sandbox Code Playgroud)

但是现在你还没有填写所有领域的表格!在create.gsp中填写表单后,该链接将直接指向"保存"操作.

<g:form url="[resource:customerInstance, action:'save']" >
    <fieldset class="form">
        <g:render template="form"/>
    </fieldset>
    <fieldset class="buttons">
        <g:submitButton name="create" class="save" value="${message(code: 'default.button.create.label', default: 'Create')}" />
    </fieldset>
</g:form>
Run Code Online (Sandbox Code Playgroud)

但是在保存操作中,我看到与表单中的字段设置字段无关.它在哪里完成?

@Transactional
def save(Customer customerInstance) {
    if (customerInstance == null) …
Run Code Online (Sandbox Code Playgroud)

grails

1
推荐指数
1
解决办法
357
查看次数