机器学习——非线性回归( Logistic Regression)及应用
来源:互联网 发布:淘宝500字差评范文 编辑:程序博客网 时间:2024/05/18 08:40
1、概率
(1)定义:概率(Probability):对一件事情发生的可能性的衡量。
(2)取值范围:0<=P<=1
(3)计算方法:根据个人置信、根据历史数据、根据模拟数据
(4)条件概率:在事件B已经发生的情况下,事件A发生的概率等于事件A、B同时发生的概率除以B事件发生的概率。
2、逻辑回归(Logistic Regression)
(1)例子:
h(x)>0.5(恶性),Malignant=1
h(x)>0.2,Malignant=1
比较两种情况,新的数值加入时需要不断调整阈值,说明用线性的方法进行回归不太合理。
(2)基本模型
测试数据为:X(x0,x1,...,xn)
要学习的参数为:
向量表示:
处理二值的数据(自变量x取任意值,因变量y只能取0或1),引入sigmoid函数将曲线平滑化:,经过点(0,0.5)
预测函数:
用概率表示:
正例(y=1):
,对于给定的一组数据自变量和一组参数,y=1的概率。
反例(y=0):
(3)cost函数
线性回归:
使其最小
,在线性回归中,找到合适的、使上式最小。
逻辑回归(Logistic Regression):
cost函数:
目标:找到合适的、使上式的值最小,求导数使其为0,即可求得。
(4)解法:梯度下降(gredient descent)
梯度下降法是用负梯度方向为搜索方向的,最速下降法越接近目标值,步长越小,前进越慢。可以用于求解非线性方程组。
梯度下降法的计算过程就是沿梯度下降的方向求解极小值。
更新法则:
,i是指不同的实例。
3、梯度下降算法实现代码
#!/usr/bin/env python# -*- coding:utf-8 -*-# Author:ZhengzhengLiuimport numpy as npimport random#梯度下降算法def gradientDescent(x,y,theta,alpha,m,numIteration): #输入实例、分类标签、要学习的参数、学习率、实例个数、迭代次数 xTrans = x.transpose() #矩阵的转置 for i in range(0,numIteration): hypothsis = np.dot(x,theta) loss = hypothsis - y cost = np.sum(loss**2)/(2*m) print("Iteration %d / Cost:%f" %(i,cost)) gradient = np.dot(xTrans,loss)/m theta = theta - alpha * gradient #更新法则 return theta#创建数据,用作测试def genData(numPoints,bais,variance): #实例(行数)、偏向、方差 x = np.zeros(shape=(numPoints,2)) #初始化numPoints行2列(x1,x2)的全零元素矩阵 y = np.zeros(shape=numPoints) #归类标签 for i in range(0,numPoints): x[i][0] = 1 #所有行第1列为:1 x[i][1] = i #所有行第2列为:行的数目 y[i] = (i + bais) + random.uniform(0,1)*variance return x,yx,y = genData(100,25,10)print("x:",x)print("y:",y)m,n = np.shape(x)n_y = np.shape(y)numIteration = 100000alpha = 0.0005theta = np.ones(n) #初始化thetatheta = gradientDescent(x,y,theta,alpha,m,numIteration)print(theta)运行结果部分截图:
阅读全文
0 0
- 机器学习——非线性回归( Logistic Regression)及应用
- 7.6 非线性回归应用:logistic Regression application
- 机器学习-logistic Regression(逻辑回归)
- 机器学习之回归分析——Logistic regression
- 机器学习模型——逻辑回归Logistic Regression
- Standford 机器学习—第三讲 Logistic Regression 逻辑回归
- 机器学习-- Logistic回归 Logistic Regression
- 林轩田机器学习基石观后笔记——逻辑回归(logistic regression)
- 机器学习——多元线性回归分析(multiple regression)及应用
- 7.5 非线性回归:logistic Regression(逻辑回归)
- Andrew NG机器学习课程笔记系列之——机器学习之逻辑回归(Logistic Regression)
- Andrew NG机器学习课程笔记系列之——机器学习之逻辑回归(Logistic Regression)
- 机器学习:2、Logistic regression (逻辑回归)
- 机器学习之逻辑回归(Logistic Regression)
- 机器学习之逻辑回归(Logistic Regression)
- 机器学习之逻辑回归(Logistic Regression)
- 机器学习之逻辑回归(Logistic Regression)
- 机器学习之逻辑回归(Logistic Regression)
- hdu 3749 Financial Crisis(Tarjan,点双连通分量)
- hdu 1864 最大报销额
- 【Spark系列2】reduceByKey和groupByKey区别与用法
- 求特殊方程的正整数解
- XML文件删除掉注释
- 机器学习——非线性回归( Logistic Regression)及应用
- 【数位DP】Bomb HDU
- Java学习笔记(1)——搭建好需要的环境
- NGL图形库配置--VS2015+Qt5.8
- hdoj 5934 Bomb
- 在 Linux Mint 安装 Linux Kernel 4.12(稳定版)
- Log:what every software enginner should know about real-time data's unifying abstraction
- Java基础---条件语句、Switch、while、do while、for、break、continue
- MyBaits和HiBernate的区别