机器学习 -- 二元逻辑回归实例


二元逻辑回归可用于向量的概率预测,是一种分类算法。迭代方式可选择最小二乘法或梯度下降。
迭代之后会得到每个特征的系数。


公式(对于有N个特征的向量,其中w[i]为权):
f(x) = 1/(1+ e^[-(w0+w1*x1+w2*x2+...+wn*xn)])


例如有两个特征w1和w2(最小二乘后可得到,以及w0),即可使用公式来计算,在x1和x2的条件下,概率为多少。




实现代码 (C# with accord.net):


 
public class LogisticRegressionDemo
    {
        public static void Execute()
        {
            double[][] input =
            {
                new double[] { 55, 0 },
                new double[] { 28, 0 },
                new double[] { 65, 1 },
                new double[] { 46, 0 },
                new double[] { 86, 1 },
                new double[] { 56, 1 },
                new double[] { 85, 0 },
                new double[] { 33, 0 },
                new double[] { 21, 1 },
                new double[] { 42, 1 },
            };


            double[] output =
            {
                0, 0, 0, 1, 1, 1, 0, 0, 0, 1
            };




            LogisticRegression regression = new LogisticRegression(2);
            var trainer = new IterativeReweightedLeastSquares(regression);


            double delta = 0;
            do
            {
                // Perform an iteration
                delta = trainer.Run(input, output);


            } while (delta > 0.001);


            var b1 = regression.Coefficients[1];
            var b2 = regression.Coefficients[2];
            var b0 = regression.Intercept;


            var func = new Func<double, double, double>((x1, x2) =>
            {
                 var result = 1 / (1 + Math.Exp(-b0 - b1 * x1 - b2 * x2));
                 return result;
            });


            var age = 79;
            var smoking = 0;
            var r = func(age, smoking);
            Console.WriteLine("input x [age:{0}, smoking:{1}] is {2}", age, smoking, r);
        }
    }




static void Main(string[] args)
        {
            LogisticRegressionDemo.Execute();
            Console.ReadLine();
        }





本例使用了accord.net framework ,是不错的.NET机器学习算法学习库。


http://accord-framework.net
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值