Python使用逻辑回归估算OR值】的更多相关文章

第一种是统计学方法,需要用到 statsmodels包 statsmodels是统计和计量经济学的package,包含了用于参数评估和统计测试的实用工具 第二种是机器学习,需要使用sklearn中的LogisticRegression 下面以计算dis1-->dis2的OR值为例,也就是说dis1为自变量,dis2为因变量 首先我们先造一组数据: x为自变量,y为因变量 df = pd.DataFrame({'x': ['dis1', 'dis1', 'dis1', 'dis1', 'dis3'…
线性回归: 注:为偏置项,这一项的x的值假设为[1,1,1,1,1....] 注:为使似然函数越大,则需要最小二乘法函数越小越好 线性回归中为什么选用平方和作为误差函数?假设模型结果与测量值 误差满足,均值为0的高斯分布,即正态分布.这个假设是靠谱的,符合一般客观统计规律.若使 模型与测量数据最接近,那么其概率积就最大.概率积,就是概率密度函数的连续积,这样,就形成了一个最大似然函数估计.对最大似然函数估计进行推导,就得出了推导后结果: 平方和最小公式 注: 1.x的平方等于x的转置乘以x. 2…
一.任务基础 我们将建立一个逻辑回归模型来预测一个学生是否被大学录取.假设你是一个大学系的管理员,你想根据两次考试的结果来决定每个申请人的录取机会.你有以前的申请人的历史数据,你可以用它作为逻辑回归的训练集.对于每一个培训例子,你有两个考试的申请人的分数和录取决定.为了做到这一点,我们将建立一个分类模型,根据考试成绩估计入学概率. 数据集链接为:链接:https://pan.baidu.com/s/1H3T3RfyT3toKbFrqO2z8ug,提取码:jku5 首先导入需要使用到的Python…
建立一个逻辑回归模型来预测一个学生是否被录取. import numpy as np import pandas as pd import matplotlib.pyplot as plt import os path='data'+os.sep+'Logireg_data.txt' pdData=pd.read_csv(path,header=None,names=['Exam1','Exam2','Admitted']) pdData.head() print(pdData.head())…
1.逻辑函数 假设数据集有n个独立的特征,x1到xn为样本的n个特征.常规的回归算法的目标是拟合出一个多项式函数,使得预测值与真实值的误差最小: 而我们希望这样的f(x)能够具有很好的逻辑判断性质,最好是能够直接表达具有特征x的样本被分到某类的概率.比如f(x)>0.5的时候能够表示x被分为正类,f(x)<0.5表示分为反类.而且我们希望f(x)总在[0, 1]之间.有这样的函数吗? sigmoid函数就出现了.这个函数的定义如下: 先直观的了解一下,sigmoid函数的图像如下所示(来自ht…
我们知道感知器算法对于不能完全线性分割的数据是无能为力的,在这一篇将会介绍另一种非常有效的二分类模型--逻辑回归.在分类任务中,它被广泛使用 逻辑回归是一个分类模型,在实现之前我们先介绍几个概念: 几率(odds ratio): \[ \frac {p}{(1-p)} \] 其中p表示样本为正例的概率,当然是我们来定义正例是什么,比如我们要预测某种疾病的发生概率,那么我们将患病的样本记为正例,不患病的样本记为负例.为了解释清楚逻辑回归的原理,我们先介绍几个概念. 我们定义对数几率函数(logit…
首先得明确逻辑回归与线性回归不同,它是一种分类模型.而且是一种二分类模型. 首先我们需要知道sigmoid函数,其公式表达如下: 其函数曲线如下: sigmoid函数有什么性质呢? 1.关于(0,0.5) 对称 2.值域范围在(0,1)之间 3.单调递增 4.光滑 5.中间较陡,两侧较平缓 6.其导数为g(z)(1-g(z)),即可以用原函数直接计算 于是逻辑回归的函数形式可以用以下公式表示: 其中θ表示权重参数,x表示输入.θTx为决策边界,就是该决策边界将不同类数据区分开来. 为什么使用si…
import numpy as np import matplotlib.pyplot as plt from matplotlib import cm from mpl_toolkits.mplot3d import Axes3D from sklearn import datasets, linear_model from sklearn.model_selection import train_test_split def load_data(): # 使用 scikit-learn 自带…
机器学习课程的一个实验,整理出来共享. 原理很简单,优化方法是用的梯度下降.后面有测试结果. # coding=utf-8 from math import exp import matplotlib.pyplot as plt import numpy as np from sklearn.datasets.samples_generator import make_blobs def sigmoid(num): ''' :param num: 待计算的x :return: sigmoid之后…
代码: import numpy as np from sklearn import datasets from sklearn.linear_model import LogisticRegression import matplotlib.pyplot as plt __author__ = 'zhen' iris = datasets.load_iris() for i in range(0, 4): x = iris['data'][:, i:i+1] # 获取训练数据 y = iris…