weka[8] - Logistic Regression

本文介绍了Weka中逻辑回归的实现原理,包括其作为二分类和多分类算法的应用,以及拟牛顿法在优化过程中的作用。通过预处理数据、计算特征均值和标准差,利用Optimization类解决非线性规划问题来确定权重矩阵。逻辑回归的代价函数和softmax回归的关联也被提及,尽管代码实现可能不直观,但其效率和内存使用可能是优化考虑的重点。
摘要由CSDN通过智能技术生成

Logistic Regression(逻辑回归),在分类算法中应该也算是鼎鼎有名了。作为GLM的成员之一,他的Link 是一个sigmoid函数。

Ng的machine learning从最大似然角度,给出了cost function,然后用梯度下降的办法求得系数向量w。(http://www.tuicool.com/articles/auQFju)

逻辑回归的优点是他模型简单、易于解释、灵活度大(调整cutoff),计算相对快速容易,也可以并行化。

缺点是它是线性的,对非线性的问题不好处理,它只能是个二分类算法(extend to softmax)。weka中的logistic regression是支持的多分类的,其实他就是softmax回归!

解逻辑回归的优化方法有很多,包括梯度下降、牛顿法、拟牛顿法、L-BFGS等。weka中使用的是拟牛顿法(Quasi-Newton Methods)--题外话,虽然本科的时候上过,现在都还给老师了-_-|||。

下面进入正题,来看看buildClassify:

// can classifier handle the data?
    getCapabilities().testWithFail(train);

    // remove instances with missing class
    train = new Instances(train);
    train.deleteWithMissingClass();
    
    // Replace missing values	
    m_ReplaceMissingValues = new ReplaceMissingValues();
    m_ReplaceMissingValues.setInputFormat(train);
    train = Filter.useFilter(train, m_ReplaceMissingValues);

    // Remove useless attributes
    m_AttFilter = new RemoveUseless();
    m_AttFilter.setInputFormat(train);
    train = Filter.useFilter(train, m_AttFilter);
	
    // Transform attributes
    m_NominalToBinary = new NominalToBinary();
    m_NominalToBinary.setInputFormat(train);
    train = Filter.useFilter(train, m_NominalToBinary);
刚开始和一般的差不多,检查数据,删掉没有标签的。

ReplaceMissingValues是用modes或

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值