精华内容
下载资源
问答
  • 使用ECharts+Java实现的完整案例,包括实现柱状图和饼图,代码完整,有数据库文件,数据库为Oracle
  • 卷积神经网络(简单实现案例)

    千次阅读 2019-08-28 10:06:48
    案例: 代码: import numpy as np import tensorflow as tf ''' 随机产生一个输入数据 ''' # 输入数据:(1,32,32,1):(输入一张图,高度32,宽度32,通道数为1) input_data = np.random.randn(32,32).reshape...

    案例: 

     代码:

    import numpy as np
    import tensorflow as tf
    
    '''
    随机产生一个输入数据
    '''
    # 输入数据:(1,32,32,1):(输入一张图,高度32,宽度32,通道数为1)
    input_data = np.random.randn(32,32).reshape(1,32,32,1)
    
    '''
    第一层卷积
    '''
    # 卷积核,(5,5,1,8):(高度5,宽度5,通道数1,输出卷积核个数8)
    filter_ = np.random.randn(5,5,8).reshape(5,5,1,8)
    
    # 第一层卷积,(1,1,1,1):(1,高度方向移动步长,宽度方向移动步长),'V':不会自动补零
    conv = tf.nn.conv2d(input=input_data,filter=filter_,strides=[1,1,1,1],padding='VALID')
    
    # 池化,(1,2,2,1):(1,池化核高度,池化核宽度,1),(1,2,2,1):(高度方向移动步长,宽度方向移动步长),'S':自动补零
    pool = tf.nn.max_pool(conv,ksize=[1,2,2,1],strides=[1,2,2,1],padding='SAME')
    
    # 激活
    relu = tf.nn.relu(pool)
    
    # dropout 保留60%连接
    dropout = tf.nn.dropout(relu,keep_prob=0.6)
    
    '''
    第二层卷积
    '''
    # 卷积核
    filter2 = np.random.randn(5,5,8,20)
    
    conv2 = tf.nn.conv2d(input=dropout,filter=filter2,strides=[1,1,1,1],padding='VALID')
    
    # 池化
    pool2 = tf.nn.max_pool(conv2,ksize=[1,2,2,1],strides=[1,2,2,1],padding='SAME')
    
    # 激活
    sigmod = tf.nn.sigmoid(pool2)
    
    # dropout
    dropout2 = tf.nn.dropout(pool2,keep_prob=0.5)
    
    '''
    全连接层
    '''
    # 权重
    dense = np.random.randn(500,120)
    fc = tf.reshape(dropout2,shape=[1,5*5*20])
    # 相乘
    conn = tf.matmul(fc,dense)
    
    # 输出层
    w = np.random.randn(120,9)
    b = np.random.randn(9)
    out = tf.matmul(conn,w)+b
    print(out)
    
    with tf.Session() as sess:
        print(sess.run(out))

    输出:

    Tensor("add:0", shape=(1, 9), dtype=float64)


    [[ 56292.23092699 -25663.07097064  10046.3161544  -10689.08116037
       95927.7495999   31923.13009604 -29105.7761752   76256.49429168
       49508.435624  ]]

    展开全文
  • java乐观锁实现案例

    万次阅读 2018-03-17 17:57:17
    一般用synchronized实现,保证每次操作数据不会冲突。乐观锁认为,线程冲突可能性小,比较乐观,直接去操作数据,如果发现数据已经被更改(通过版本号控制),则不更新数据,再次去重复 所需操作,知道没有冲突...

    简单说说乐观锁。乐观锁是相对于悲观锁而言。悲观锁认为,这个线程,发生并发的可能性极大,线程冲突几率大,比较悲观。一般用synchronized实现,保证每次操作数据不会冲突。乐观锁认为,线程冲突可能性小,比较乐观,直接去操作数据,如果发现数据已经被更改(通过版本号控制),则不更新数据,再次去重复 所需操作,知道没有冲突(使用递归算法)。

        因为乐观锁使用递归+版本号控制  实现,所以,如果线程冲突几率大,使用乐观锁会重复很多次操作(包括查询数据库),尤其是递归部分逻辑复杂,耗时和耗性能,是低效不合适的,应考虑使用悲观锁。

       乐观锁悲观锁的选择:

            乐观锁:并发冲突几率小,对应模块递归操作简单    时使用

            悲观锁:并发几率大,对应模块操作复杂 时使用

    下面给出一个乐观锁实例:

    	/**
    	 * 自动派单
    	 * 只查出一条    返回list只是为了和查询接口统一
    	 * 视频审核订单不派送
    	 * @param paramMap
    	 * @return
    	 */
    	public List<AutomaticAssignDto> automaticAssign(Map<String, Object> paramMap){
    		//派送规则
    		String changeSortSet = RedisCacheUtil.getValue(CACHE_TYPE.APP, "changeSortSet");
    		if (StringUtils.isBlank(changeSortSet)) {
    			changeSortSet = customerManager.getDictionaryByCode("changeSortSet");
    			if (StringUtils.isNotBlank(changeSortSet)) {
    				RedisCacheUtil.addValue(CACHE_TYPE.APP, "changeSortSet", changeSortSet,30,TimeUnit.DAYS);
    			} else {
    				changeSortSet = ConstantsUtil.AssignRule.FIFO; // 默认先进先审
    			}
    		}
    		AutomaticAssignDto automaticAssignDto = new AutomaticAssignDto();
    		automaticAssignDto.setChangeSortSet(changeSortSet);
    		automaticAssignDto.setUserTeam(CommonUtils.getValue(paramMap, "userTeam"));
    		List<AutomaticAssignDto> waitCheckList = automaticAssignMybatisDao.automaticAssignOrder(automaticAssignDto);
    		if(waitCheckList != null && waitCheckList.size()>0){
    			automaticAssignDto = waitCheckList.get(0);
    			automaticAssignDto.setSendStatus(ConstantsUtil.SendStatus.SEND);
    			automaticAssignDto.setBindTime(new Date());
    			automaticAssignDto.setUserId(Long.parseLong(paramMap.get("userId").toString()) );
    			int sum = automaticAssignMybatisDao.bindAutomaticAssignInfo(automaticAssignDto);
    			if(sum == 1){
    				return waitCheckList;
    			}else{
    				//已被更新 则再次获取
    				return automaticAssign(paramMap);
    			}
    		}else{
    			return null;
    		}
    	}

    对应更新的sql:

    	<update id="bindAutomaticAssignInfo" parameterType="com.star.manager.dto.apply.AutomaticAssignDto">
    	   UPDATE t_automatic_assign 
    	   SET  
    	   		SEND_STATUS = #{sendStatus} ,
    			BIND_TIME = SYSDATE() ,
    			LOCKED_FINISHTIME = SYSDATE(),
    			USER_ID = #{userId} ,
    	   		VERSION = VERSION + 1, 
    	   		UPDATE_DATE = SYSDATE()
    	   WHERE	SLT_ACCOUNT_ID = #{sltAccountId} 
    				AND VERSION = #{version}
    	</update>	

    简要说明:表设计时,需要往表里加一个version字段。每次查询时,查出带有version的数据记录更新数据时,判断数据库里对应id的记录的version是否和查出的version相同。若相同,则更新数据并把版本号+1;若不同,则说明,该数据发送并发,被别的线程使用了,进行递归操作,再次执行递归方法,知道成功更新数据为止。

        上述automaticAssign方法即实现了一个乐观锁,作用是冲数据库里更新一条数据病返回前端。如果并发率大,一次请求可能则会重复执行很多次automaticAssign,则性能低。如果并发很乐观,用户请求少,则不需要用synchronized,多线程时性能高。

        在此只是简单说说,详细概念等需另行查阅相关资料。



    展开全文
  • 分类算法的R语言实现案例

    千次阅读 2016-02-23 22:52:46
    针对《R语言与网站分析》一书未提供数据集和源代码的情况,自己动手整理了一个可用于其中分类算法的数据集,并且基于该数据集实现了朴素贝叶斯、SVM和人工神经网络等分类算法。附件中有详细的数据集、源程序和说明...

    最近在读《R语言与网站分析》,书中对分类、聚类算法的讲解通俗易懂,和数据挖掘理论一起看的话,有很好的参照效果。

    然而,这么好的讲解,作者居然没提供对应的数据集。手痒之余,我自己动手整理了一个可用于分类算法的数据集(下载链接:csdn下载频道搜索“R语言与网站分析:数据集样例及分类算法实现”),并用R语言实现了朴素贝叶斯、SVM和人工神经网络分类。

    数据集记录的是泰坦尼克号乘客的存活情况。数据集包括乘客的等级(class)、年龄(age)、性别(sex)和存活情况(survive),最终希望通过分析乘客的等级、年龄和性别建立模型,对乘客是否能够存活进行分类。

    以下是使用read.table()函数读取的数据集情况,可以看到class的3/4分位数和最大值、age的最小值和1/4分位数以及sex的1/4分位数和中位值分别相等,判断数据集可能已经离散化。

    > data <- read.table("./titanic_s.txt", header = TRUE, sep = ",")
    > summary(data)
         class                 age                 sex                survive       
     Min.   :-1.8700000   Min.   :-0.228000   Min.   :-1.9200000   Min.   :-1.0000  
     1st Qu.:-0.9230000   1st Qu.:-0.228000   1st Qu.: 0.5210000   1st Qu.:-1.0000  
     Median : 0.0214000   Median :-0.228000   Median : 0.5210000   Median :-1.0000  
     Mean   :-0.0007595   Mean   : 0.000202   Mean   :-0.0002494   Mean   :-0.3539  
     3rd Qu.: 0.9650000   3rd Qu.:-0.228000   3rd Qu.: 0.5210000   3rd Qu.: 1.0000  
     Max.   : 0.9650000   Max.   : 4.380000   Max.   : 0.5210000   Max.   : 1.0000 


    将数据全部转换为因子类型。可以看到经过转换后,class有四类(贵族、高、中、低)、age有两类(孩子和成人)、sex有两类(男和女)、survive有两类(存活和未存活)。

    > data$class <- as.factor(data$class)
    > data$age <- as.factor(data$age)
    > data$sex <- as.factor(data$sex)
    > data$survive <- as.factor(data$survive)
    > summary(data)
        class         age          sex       survive  
     -1.87 :325   -0.228:2092   -1.92: 470   -1:1490  
     -0.923:285   4.38  : 109   0.521:1731   1 : 711  
     0.0214:706                                       
     0.965 :885


     
    使用table()函数可查看未存活和存活人数分别为1490人、711人,二者数据量相差较大;如果用这样的数据集建模,可能影响分类结果。 
    

    > table(data$survive)
    
      -1    1 
    1490  711


     
    

    为此,对数据量较少的存活人员样本进行重抽样,使得二者的样本数量一致。

    > balance <- function(data,yval) {
    +   y.vector <- with(data,get(yval))
    +   index.0 <- which(y.vector==-1)
    +   index.1 <- which(y.vector==1)
    +   index.1 <- sample(index.1, length(index.0), replace = TRUE)
    +   result <- data[sample(c(index.0,index.1)),]
    +   result
    + }
    > 
    > sdata <- balance(data, "survive")
    > table(sdata$survive)
    
      -1    1 
    1490 1490


    将重抽样后的数据分为训练数据集和样本数据集,比例默认按7:3分配。

    > apart.data <- function(data, percent = 0.7) {
    +   train.index <- sample(c(1:nrow(data)),round(percent*nrow(data)))
    +   data.train <- data[train.index,]
    +   data.test <- data[-c(train.index),]
    +   result <- list(train = data.train, test = data.test)
    +   result
    + }
    > p.data <- apart.data(sdata)
    > data.train <- p.data$train
    > data.test <- p.data$test

    数据准备妥当后,可以开始采用不同的分类算法构建模型,并使用测试数据集对模型的分类效果进行评估。要构建的模型是关于存活情况survive与class、age以及sex之间的关系,可用如下公式表示。

    > mod.formula <- as.formula("survive~class+age+sex")</span>

    分类算法1:朴素贝叶斯分类,注意要加载e1071库。应用测试数据集对效果进行评估,结果真正率tpr(也就是“预测活着也真活着的人数”/“实际活着的人数”)为57%,真负率tnr(也就是“预测没活也真没活的人数”/“实际没活的人数”)84%。看来预测“没活”的情况比较准。

    > install.packages("e1071")
    > library(e1071)
    > nb.sol <- naiveBayes(mod.formula, data.train);nb.sol
    > nb.predict <- predict(nb.sol, newdata = data.test)
    > tb <- table(nb.predict, data.test$survive)
    > tpr <- tb[2,2]/(tb[2,2]+tb[1,2]);tpr
    [1] 0.5735608
    > tnr <- tb[1,1]/(tb[1,1]+tb[2,1]);tnr
    [1] 0.8447059
    

    分类算法2:支持向量机(SVM)分类。应用测试数据集对效果进行评估,结果也是真正率tpr较低,真负率tnr较高。

    > svm.sol <- svm(mod.formula, data.train);svm.sol
    > svm.predict <- predict(svm.sol, data.test)
    > tb <- table(svm.predict, data.test$survive)
    > tpr <- tb[2,2]/(tb[2,2]+tb[1,2]);tpr
    [1] 0.5095949
    > tnr <- tb[1,1]/(tb[1,1]+tb[2,1]);tnr
    [1] 0.9152941


    分类算法3:人工神经网络(ANN)分类,注意加载nnet包。应用测试数据集对效果进行评估,结果也是真正率tpr较低,真负率tnr较高。

    > library(nnet)
    > nnet.sol <- nnet(mod.formula, data.train, size =7, maxit = 1000);nnet.sol
    > pred.prob <- predict(nnet.sol, data.test)
    > pred.class <- ifelse(pred.prob>0.5, 1,0)
    > table(pred.class, data.test$survive)
    > tb <- table(pred.class, data.test$survive)
    > tpr <- tb[2,2]/(tb[2,2]+tb[1,2]);tpr
    [1] 0.5095949
    > tnr <- tb[1,1]/(tb[1,1]+tb[2,1]);tnr
    [1] 0.9152941

    通过对具体的数据集进行数据的重抽样、划分训练数据集和测试数据集,以及最终实施相应的分类算法,可以加深对于R语言分类分析过程和方法的理解。

    展开全文
  • Python实现SVM使用案例

    万次阅读 多人点赞 2019-06-05 20:14:31
    这篇推文主要介绍Python实现SVM的案例,后期会更新加强版。 这里主要讲的是使用Python的Sklearn包实现SVM样本分类,而不包括SVM的理论推导,我在看SVM的理论的时候看了很多网上的博客,有很多都写的不错,这里...

    最近一直在看文本挖掘这块儿,看了许多机器学习相关的资料,在这里做个笔记分享给大家,有供自己日后学习浏览。码字不易,喜欢请点赞!!!

    这篇推文主要介绍Python实现SVM的案例,后期会更新加强版。

    这里主要讲的是使用Python的Sklearn包实现SVM样本分类,而不包括SVM的理论推导,我在看SVM的理论的时候看了很多网上的博客,有很多都写的不错,这里推荐,July写的支持向量机通俗导论(理解SVM的三层境界),而且作者将其制作成了pdf版本,可以下载下来观看。这篇博客是July12年开始写的,并且一直更新完善,所以到现在真的是通俗易懂。这里附上网址:https://blog.csdn.net/v_july_v/article/details/7624837

    理论部分这篇博客真的够!!!

    Sklearn是Python专门用于机器学习的包,安装方法网上有很多,这里也不介绍了,有问题可以随时进交流群询问。

    这里就开始一步步讲解,在实践过程中的具体步骤。

    一般来说机器学习的实践流程包括:导入数据->数据标准化->模型选择->模型的训练测试->保存模型

    首先,导入数据这块,你如果使用自己的数据集的话,可以用numpy或者pandas导入。本文这里直接使用Sklearn自带的经典的iris鸢尾花数据集。

    导入数据之后,对数据进行标准化处理(由于这里采用的是自带的鸢尾花数据集,已经不需要标准化就能很好的预测了,使用自己的样本时,这步非常重要)。

    在对数据标准化处理之后,这里对用分类的数据进行切分,分为训练集和样本集。
    PS:数据切分函数位置已经更新为以下地方(2019-11-11更):
    from sklearn.model_selection import train_test_split

    模型选择:Sklearn中已经实现了所有基本的机器学习方法,包括:

    本文选用的模型为支持向量机(SVM的参数很多,主要是设置惩罚参数C,后期的加强版会介绍,这里使用默认参数C=1):

    使用模型进行训练和测试,然后输出测试后的精度:

    可以看到只有第二行第一个有错误,其他都是准确的。

    保存模型:在训练出满意的模型之后,可已经模型保存,以便下次使用,Python中保存模型的方法有两种,第一种是pickle包,第二种是Sklearn中的joblib方法,官方文档推荐的是使用joblib方法,因为该方法使用了多进程,速度更快,这里也就展示joblib方法。

    可以看到简单的两个语句就实现了模型的保存与再调用。

    简简单单12行代码你就完成了机器学习的实践,是不是很sixsixsxi!!!

    ps:对于Sklearn的基本使用方法就这些了,后期会分享进阶版,包括但不限于模型的函数主要参数的设置以及交叉验证。

    展开全文
  • 微信支付实现案例

    千次阅读 2018-05-07 12:50:25
    更多IT、编程案例、资料请联系QQ:1280023003 百战不败,依不自称常胜,百败不颓,依能奋力前行。——这才是真正的堪称强大! 微信支付实现主要分为以下几个步骤: 创建支付参数 转换参数(将其他的格式参数...
  • 支付宝网页端支付接口实现案例流程

    万次阅读 多人点赞 2018-12-09 19:53:06
    支付宝网页端支付接口实现案例流程 ** 1.登陆蚂蚁金服官网:https://open.alipay.com/platform/home.htm 2.根据提示注册开发者账号,这里由于我已经注册了,就不在演示注册开发者账号的过程。大家根据提示注册相应...
  • 代理模式三种实现案例

    千次阅读 2017-08-14 08:36:51
    阅读本文需要一定面向对象以及类反射机制基础反射机制详解代理模式的主要作用:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不想或者不能直接引用另...因此我们可以通过代理模式来实现对某个
  • 实现了两个案例,来属性KNN模型的构建 原文链接: https://blog.csdn.net/Daycym/article/details/84452786 (*本文为AI科技大本营转载文章,转载请联系原作者) ◆ 推荐 ◆ 推荐阅读 真的,Pornhub比今日头条或是...
  • 研究Python自动化时候,实践学习就简单写了一个运用Python实现自动投票模块,基本实现微信投票3秒钟一票,这家投票最简单,没有验证码,没有注册用户限制,没有IP限制,三无~!! 本程序为学习研究实例。仅供参考学习...
  • 数十种TensorFlow实现案例汇集:代码+笔记

    万次阅读 多人点赞 2016-10-18 17:48:03
    2016-10-17 13:08:31 开源 0 0 0 ...这是使用 TensorFlow 实现流行的...这些案例适合那些想要清晰简明的 TensorFlow 实现案例的初学者。本教程还包含了笔记和带有注解的代码。 项目地址:https://github.com/
  • 案例1: 案例2: 案例1代码: 浮动布局 .head,.main,.bottom{ margin:0; padding: 0; } .head{ width:400px; height:100px; background:#000000; } .main{ ...
  • 梯度下降实现案例(含python代码)

    万次阅读 2016-02-16 23:42:07
    梯度下降实现案例(含python代码)
  • 文章目录 前言 I 、UICollectionView 从右向左对齐 1.1 核心步骤 1.2 bottomV的用法 1.3 bottomV的实现 II、UICollectionViewCell的完整代码 2.1 自定义UICollectionViewCell 2.2 自定义按钮 see also 前言 iOS ...
  • 现分享一个使用impala-Kudu 架构的数据仓库 的技术选型与架构实现案例 神策分析的技术选型与架构实现 url: https://sensorsdata.cn/blog/technical_implementation_of_sensors_analytics/
  • springmvc文件上传下载简单实现案例(ssm框架使用)

    万次阅读 多人点赞 2017-02-17 14:04:05
    springmvc文件上传下载实现起来非常简单,此springmvc上传下载案例适合已经搭建好的ssm框架(spring+springmvc+mybatis)使用,ssm框架项目的搭建我相信你们已经搭建好了,这里不再赘述,下面就开始吧! ssm框架...
  • with tf.variable_scope('Actor'): # input s, output a self.a = self._build_net(S, scope='eval_net', trainable=True) # input s_, output a, get a_ for critic self.a_ = self._build_net(S_, scope='...
  • javaweb实现的购物车的简单案例,通过mvc架构实现购物车的开发
  • Python案例:两种方法实现词频统计

    千次阅读 2019-10-28 17:43:54
    Python案例:两种方法实现词频统计 一、利用字典实现词频统计 1、编写源代码 2、查看运行结果 二、利用collections的Counter模块实现词频统计 1、编写源代码 2、查看运行结果 ...
  • /** * 树节点的设计 * * @param <E> E类型 */ private static class TreeNode<E> { //数据域 E e; //父节点的索引 int parent; public TreeNode(E e, int parent) { ...}
  • Bootstrap介绍和Bootstrap各个版本之间的差异对比。...重点讲解栅格布局这一核心内容对实现响应式布局的支持,配合其他全局样式和组件及插件,让用户在实现响应式布局的同时,得到更加优雅的页面效果。
  • Java乐观锁的实现原理(案例

    千次阅读 2017-05-03 10:45:37
    有2种机制可以解决这个问题:就是悲观锁和乐观锁了。...这里我们使用乐观锁,通过案例代码来实现一个乐观锁,达到解决问题的目的。 package what21.thread.lock; public class OptimLockMai
  • html实现注册页面小案例

    千次阅读 2016-11-07 21:28:52
    案例:使用html实现注册页面 首先看一下效果图: Document 注册csdn的账号 注册邮箱: &nbsp; 你可以使用账号或者手机号来注册 真实姓名: 性别: 男女 ...
  • jQuery经典小案例

    万次阅读 多人点赞 2019-03-29 01:01:47
    下拉菜单案例 突出展示案例 淘宝精品案例 京东呼吸灯案例 tab栏切换案例 手风琴案例 城市选择案例 微博发布案例 弹幕效果案例 固定导航栏案例 小火箭返回顶部案例 音乐导航栏案例 下拉菜单案例 ...
  • create database android; use android; create table dictionary( id int AUTO_INCREMENT, receive varchar(100), response varchar(100), PRIMARY KEY (id) ) DEFAULT CHARSET=utf8;...insert into dictionary ...
  • 动态规划算法——C++实现经典案例——初级

    万次阅读 多人点赞 2017-05-15 10:04:24
    C++实现: #include #define N 20 //台阶数为20 using namespace std; int dp[N]; //全局数组,存放决策表 int fun(int n) //返回台阶数为n的走法 { if (n == 1 || n == 2) { return n; } dp[n-1] =...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 696,891
精华内容 278,756
关键字:

实现案例