用户生存分析的主要方法:Kaplan-Meier估计法

生存分析原理简明教程 单因素生存分析 Kaplan-Meier、LogRank 只能针对单一的变量进行 多因素cox回归分析 这些具体事件可以是死亡,也可以是肿瘤转移、复发、病人出院、重新入院等任何可以明确识别的事件,而不同条件即为不同的分组依据,可以是年龄、性别、地域、某个基因表达量的高低、某个突变的携带与否等等。下图是钟南山院士在对欧洲呼吸学会针对 Covid-19 的报告中提到的研究结果,他们对湖北省内和省外的病人从开始症状到入院时间做了分析,从发生症状开始,入院则是我们刚才讲的 event 事件,而湖北省内外则是不同的分组条件。图中还提到, 阅读详情

Kaplan-Meier估计法(Kaplan-Meier Estimator):

  1. 一种非参数方法,用于估计生存函数。
  2. 通过计算在每个事件发生时间点的生存概率,并将这些概率连乘得到生存函数。

举例说明:会员用户的生存分析
通过举例说明Kaplan-Meier估计法在会员用户生存分析中的应用,可以帮助我们理解如何使用该方法分析和预测会员用户的留存时间。以下是具体步骤和示例:

示例背景

假设我们运营一个在线服务平台,想要分析会员用户的留存时间,即从注册会员到取消会员资格的时间。我们收集了若干会员用户的数据,包括他们的注册时间、取消会员资格的时间(若已取消),以及是否在观察期结束时仍然是会员。

数据示例

用户ID注册时间取消时间状态
12022-01-012022-06-011(事件发生)
22022-02-01-0(删失数据)
32022-03-012022-05-011
42022-04-012022-07-011
52022-05-01-0

状态:1表示用户取消了会员资格,0表示用户在观察期结束时仍然是会员。

步骤

  1. 计算每个时间点的生存概率:

    • 生存概率是指在某个时间点上会员用户仍然活跃的概率。
    • Kaplan-Meier估计法通过累积每个时间点的生存概率来计算整体的生存函数。
  2. 构建Kaplan-Meier表格:

    • 需要列出每个时间点的事件发生数量、风险集(还活跃的用户数量)、每个时间点的生存概率等。

计算过程

时间点(天)事件数量风险集生存概率累积生存概率
30(1月)0511
60(2月)0511
90(3月)150.81 * 0.8 = 0.8
120(4月)0410.8 * 1 = 0.8
150(5月)140.750.8 * 0.75 = 0.6
180(6月)130.670.6 * 0.67 = 0.4
210(7月)120.50.4 * 0.5 = 0.2

Kaplan-Meier生存曲线

Kaplan-Meier生存曲线可以通过生存概率对时间绘制出来,曲线会在每个事件发生的时间点上下降,表明会员用户取消会员资格的累积影响。

解释

  • 初始时刻(0天),生存概率为1,表示所有会员都还活跃。
  • 在第90天,第一次事件发生(用户3取消会员),生存概率下降到0.8。
  • 随着时间推移,每次事件发生,生存概率继续下降。
  • 最终在第210天,生存概率降到0.2,表示在210天时,仍有20%的会员保持活跃。

应用价值

通过Kaplan-Meier估计法,我们可以:

  • 了解会员用户的留存情况,识别会员用户流失的时间点和比例。
  • 为制定会员保留策略提供数据支持,例如在关键时间点(如90天、180天)采取措施,提高会员留存率。
  • 预测未来会员用户的生存时间,优化会员服务和营销策略。

Kaplan-Meier估计法是分析会员用户生存时间的一种有效工具,能够帮助企业更好地理解用户行为,提升会员保留率。

Python代码

import pandas as pd
import numpy as np
from lifelines import KaplanMeierFitter

# 示例数据集
data = {
    'user_id': [1, 2, 3, 4, 5],
    'start_time': ['2022-01-01', '2022-02-01', '2022-03-01', '2022-04-01', '2022-05-01'],
    'end_time': ['2022-06-01', np.nan, '2022-05-01', '2022-07-01', np.nan],
    'event': [1, 0, 1, 1, 0]  # 1表示事件发生(取消会员),0表示右侧截尾(在观察期结束时仍为会员)
}

df = pd.DataFrame(data)
df['end_time'] = pd.to_datetime(df['end_time'])  # 转换为日期时间格式
df['start_time'] = pd.to_datetime(df['start_time'])  # 转换为日期时间格式

# 创建一个KaplanMeierFitter对象
kmf = KaplanMeierFitter()

# 对数据进行拟合
kmf.fit(df['end_time'], event_observed=df['event'])

# 绘制Kaplan-Meier曲线
import matplotlib.pyplot as plt

plt.figure(figsize=(10, 6))
kmf.plot()
plt.title('Kaplan-Meier Estimate')
plt.xlabel('Time')
plt.ylabel('Survival Probability')
plt.show()

用lifelines进行生存分析【Python版】 开篇语 生存分析在医学研究中占有很大的比例,而且进行生存分析时,多用R语言、SPSS等工具进行生存分析,用python进行生存分析不多。因为发现一个python版的生存分析工具—lifelines ,这个库已经提供比较完善的生存分析相关的工具。自己又最近学习生存分析,然后结合lifelines开始编写这个项目。写代码的同时,也对一些生存分析中概念性的名词,根据自己的理解一起展示出来。因为是边学边写,有错误的地方请指正 。 #安装生存分析用的python库----lifelines #lifelines相关 阅读详情

相关推荐

SPSS(二十)SPSS之生存分析(图文+数据集)

SPSS(二十)SPSS之生存分析(图文+数据集) 生存分析背景 为什么要使用生存分析而不是使用传统方法,大家可参考(理论介绍的非常详细) https://wenku.baidu.com/view/453b1a0c26284b73f242336c1eb91a37f11132d2.html 传统方法在分析随访资料时的困难 (随访是指医院对曾在医院就诊的病人以通讯或其他的方式,进行定期了解患...

可乐联盟 3万+

深度学习用于医学预后-第二课第三周大作业-淋巴瘤患者生存分析实战:使用 Kaplan-Meier 方法进行数据分析

欢迎来到课程二的第三个作业。在这个作业中,我们将使用Python来构建一些统计模型,这些模型是我们上周学到的,用于分析。我们还将评估这些模型并解释它们的输出。

Tina姐的博客 1000

SPSS——“Kaplan-Meier生存分析”

中可以看到实验组总数22,事件数11,删失个案数11。对照组总数22,事件数16,删失个案数6:在生存分析表中给出生存时间、生存状态、积累生存比例、累积事件数和剩余个案数等信息。本案例将数据分为。

weixin_41301530的博客 1005

生存分析简介:Kaplan-Meier估计器

In my previous article, I described the potential use-cases of survival analysis and introduced all the building blocks required to understand the techniques used for analyzing the time-to-event data....

weixin_26746401的博客 5988

数据分析学习总结笔记13:生存分析及Python实现

文章目录1 引言2 定义3 数学直观4 Kaplan-Meier 估计5 Cox比例风险模型6 总结 1 引言 生存分析是一套统计方法,用来解决诸如“多长时间后,某个特定事件发生”这样的问题; 换句话说,也可以称之为**“事件时间分析”**。 这种方法被称为生存分析,是由于主要是由医学研究人员开发的,他们更感兴趣的是寻找不同群体患者的预期寿命(例如: 用药物a治疗的组群1和用药物b治疗的组群2)。...

weixin_41961559的博客 8184

⭐Kaplan-Meier曲线与Log-Rank检验

卡普兰-梅耶曲线(Kaplan-Meier曲线)和Log-Rank检验是生存分析中两个核心工具,分别用于。⛄为什么若Log-Rank检验显著(p<0.05),需进行事后两两比较(如Bonferroni校正)?比较4种治疗方案(A、B、C、D)的生存差异,Log-Rank检验p=0.01(显著)。当Log-Rank检验显示多组生存曲线存在显著差异(p < 0.05)时,仅能说明。(Post-hoc pairwise comparisons)来定位差异来源,而。Log-Rank做检验,差异显不显。

Y20220816的博客 5157

Kaplan–Meier estimator 介绍

Kaplan–Meier estimator 介绍 本文主要便于自己理解推导,并不完善,参考如下资料: https://en.jinzhao.wiki/wiki/Kaplan%E2%80%93Meier_estimator 总的公式如下: 下面对这个公式进行解读: 首先定义一下问题: 问题的定义还是很清楚的。需要注意的是这里的生存函数S(t)是大于t的概率,而t我们这里当作是离散的。 对这个问题怎么估计呢?最简单直接的方法如下: 首先介绍如下规律: Proposition1 很容易理解。下面这句呢?就

tsq15的博客 1753

【Bioinfo Blog 012】【R Code 010】——生存分析(Kaplan-Meier & Cox)

来看生存分析~

10’s Blog 2251

Kaplan-Meier生存曲线估计

0. 简介生存分析(survival analysis)是生物医学研究中常用的分析方法。在队列随访研究中,我们会事先定义一些观察终点,比如肿瘤复发、患者死亡、血压达标等,这些终点称为事件(event)。从研究开始到发生事件的时间间隔称为生存时间(survival time),某些场景下也称为失效时间(failure time)。由于生存时间数据具有以下两个特点,所以提出生存分析这一特殊的分析方法:(1)偏态分布:生存时间通常具有明显的偏态分布,有正态分布假设的统计方法不能适用。(2)删失(censoring

weixin_44192389的博客 4688

Kaplan-Meier生存曲线绘制

其利用生存曲线图,从纵轴生存率为50%处画一条与横轴平行的线,并与生存曲线相交,然后自交点画垂线与横轴相交,此交点对应的时间即为中位生存时间,图解法比较简单直观,但结果比较粗略。在R中,survival包中有很多函数可以对生存数据进行建模,可以使用survfit()函数来估计删失数据的生存曲线,使用coxph()函数用来拟合Cox比例风险模型。生存分析研究的是某个事件发生之前过去的时间,在临床研究中最常见的应用就是死亡率的估计(预测患者的生存时间),不过生存分析也可以应用于其他领域如机械故障时间等。

weixin_46587777的博客 3646

R数据分析:国产新冠口服药比辉瑞好的文章的统计做法分享

元旦前在人民日报中央厨房上看到一篇文章,叫做“比肩辉瑞的国产新冠药物VV116,是这样研制和临床试验的”,想来就把文献原文找来读了读,写下本文分享给大家,本文主要关注文章的正文中主要统计设计(文章补充材料中还有很多值得学习的地方),前面的实验设计,包括盲法,纳排标准统统不在本文考虑,主要目的是让大家感受下NEJM的杂志的统计做法到底有多“难”。研究原文链接如下:https://www.nejm.org/doi/pdf/10.1056/NEJMoa2208822,点击即可阅读。

Codewar的博客 642

[转]生存分析之Kaplan-Meier曲线

转载自画说统计 | 生存分析之Kaplan-Meier曲线都告诉我们什么 临床研究中,存在这样一类研究,我们关注的临床结局是一个事件,比如:死亡,复发,症状消失,疾病痊愈等等。在很多情况下,我们不仅关注事件是否发生,还会关注事件发生的早晚。同时,由于研究周期的限定,和患者依从性的差异,是我们不可能追踪到所有结局事件的发生。 面对这样的数据该如何统计分析呢?办法当然有,由于最初这类方法被应用于针对死亡结局的分析中,所以这类分析被称为:生存分析。其中,Kaplan-Meier方法是帮助我们描述生存结局(或者说,

weixin_43087035的博客 2万+

H3C模拟器HCL防火墙路由模式主备配置实验

摘要:本文详细介绍了网络拓扑规划与设备配置方案。运营商仅提供一个接口地址,通过虚IP技术实现双防火墙高可用部署:主备防火墙分别配置10.20.10.1/29和10.20.10.2/29作为实际上联地址,共享10.10.10.2/24虚IP;下联配置172.168.10.0/24网段,核心交换机配置VLAN接口及192.168.10.1、192.168.20.1两个下联接口。文章包含运营商路由器、防火墙(HA配置、VVRP设置)和核心交换机的具体命令行配置步骤,并强调需进行主备切换验证。整个方案实现了单运营商

LQ的博客 1122

python数据分析案例-利用生存分析Kaplan-Meier法与COX比例风险回归模型进行客户流失分析与剩余价值预测

利用Kaplan-Meier法与COX比例风险回归模型比较了不同特征对于客户流失的影响,并且预测了客户的生存时长,计算了其剩余价值以及潜在可提升的价值。

maiyida123的博客 2万+

OpenWrt kmod内核不兼容?手把手教你用脚本强制安装驱动模块(附国内镜像源)

本文详细解决了OpenWrt kmod内核不兼容问题,提供智能脚本强制安装驱动模块的方法,并附有国内镜像源加速配置。通过自动化脚本修改内核MD5校验值,确保kmod包正常安装,同时推荐多个国内镜像源以提升下载速度。

weixin_42549451的博客 542

均值场博弈_平均场博弈(mean field game)

The New Big Fish Called Mean-Field Game Theory原文链接http://www.science4all.org/article/mean-field-games/​www.science4all.org主要内容在经典博弈论中,它对附近其他鱼类的行为做出反应。这是非常复杂的,因为不同的鱼类之间会有大量的相互作用。这意味着经典博弈论对应于一长串高度耦合的方程。...

weixin_34773479的博客 3682

生存分析绘图——Kaplan-Meier生存曲线

生存分析;Kaplan-Meier生存曲线

hanwanbing的博客 5868

四足机械臂避坑指南:从URDF配置到逆运动学控制的完整流程

本文为四足机械臂(Loco-Manipulation)系统开发提供了一份详实的实战避坑指南。文章深入剖析了从URDF模型配置、核心控制循环设计到逆运动学(IK)求解与奖励函数构建的完整流程,重点讲解了如何避免关节命名错误、惯性参数设置不当、IK求解不稳定等常见陷阱,并强调了利用collision_bbox等可视化工具进行高效调试的方法,旨在帮助工程师构建稳定、高效的四足机械臂控制系统。

weixin_42509507的博客 192

Topic 2. 生存分析之 Kaplan-Meier

关于生存分析,这个大家都非常熟悉,也是临床研究的最最常用的方法,但是在使用过程中,无论是医生还是分析人员对它都有点迷糊,下面我整理的最全的关于生存分析方法的方方面面的知识点,并结合实际的TCGA数据库结果来展示用法,希望能够帮助大家理解其使用的方法和技巧。

weixin_41368414的博客 4633

GraphSense介绍

GraphSense是一个跨账本加密货币分析平台 它的介绍在这里 代码也是开源的 graphsense-dashboard 用于交互式加密货币分析的Web仪表板。 可以看导进数据的情况 graphsense-transformation 基于spark/cassandra/java服务运行 GraphSense转换管道,用于将加密货币的区块/交易/标签等数据导入,可以看它指定的json格式: t...

幸福诗歌的博客 1081

C# 与 PaddleOCR:一行代码实现高效图片文字识别的实战指南

本文介绍了如何使用 PaddleOCRSharp 进行图像文字识别,涵盖了从环境准备到高级功能的完整流程。首先,通过 NuGet 安装 PaddleOCRSharp 并下载预训练模型。接着,展示了单张图片识别的最小化示例和详细实现,包括模型配置、图片预处理和结果输出。进阶功能部分介绍了多语言和竖排文本识别的实现方法。此外,文章还提供了 WinForms 图形界面开发的完整示例,展示了如何通过界面加载图片、执行识别并展示结果。最后,探讨了批量处理优化策略,如并行处理多张图片以提高性能。通过这些步骤,开发者可以

墨夶的博客 1004

生存分析利器:Python 中的 Kaplan-Meier Fitter 类详解

是lifelines库中用于计算生存分析的一个类。使用KaplanMeierFitter类,我们可以对我们的数据进行不同组之间的生存分析,比如根据年龄、性别、治疗手段等分类变量进行分组分析。该类包含许多方法和属性,其中最常用的是fit()方法和plot()方法。

Tina姐的博客 4312

微信小程序逆向实战:从HTTPS抓包到API接口全解构

方案原理优点缺点方案一:使用低版本微信+系统代理微信7.0以下版本未强制不走代理操作简单容易被封号,无法使用新版小程序方案二:Hook SSL层(Xposed/Frida)动态Hook Java的TrustManager或系统的SSLContext,绕过证书校验灵活可控需要Root/越狱,技术门槛高方案三:VPN转发抓包(PacketCapture)利用Android VPNService将所有流量转发到本地代理无需Root,兼容性好部分机型存在性能问题。

2201_76125261的博客 267

SPSS生存分析:Kaplan-Meier分析

生存分析:Kaplan-Meier分析

m0_64087341的博客 3349

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

SPSS学习笔记之——Kaplan-Meier生存分析

SPSS学习笔记之——Kaplan-Meier生存分析 一、概述 关于生存分析的相关概念,Kaplan-Meier用于估计生存函数,允许有一个分组变量进行生存率的组间比较,还容许一个分层变量。若不考虑其他混杂因素下生存分析的常用方法。 二、实例 要研究某种新药治疗相对于常规药物治疗对生存率有无改善,收集以下数据: months:生存时间(单位月),为连续变量。 group:1...

weixin_30414245的博客 3983

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

上一篇: 生存分析(Survival Analysis)的介绍和解释
下一篇: 机器学习十大常用算法的比较:原理及主要特点、优缺点、应用场景
rubyw
博客等级 码龄7年 1528粉丝 234原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rubyw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值