- 博客(80)
- 收藏
- 关注
原创 2.3 感知机模型
D数据,X特征,Y标签 算法代码class classfier(X,Y): def __init__(self,X,Y,W=0,Y=0): self.X=X self.Y=Y def classfier(self,X,Y): line=X.shape[0] for i in xrange(line) :
2017-03-15 19:21:42
386
原创 1.8 分类问题
输出变量Y为离散的有限的值时,预测问题称为分类问题。学习得到的分类模型或者决策函数称为分类器。分类器性能评估的指标 准确率(accuracy):分类正确占总样本的比值,也可看着是0-1损失函数在测试集上的准确率一般二分类问题多,评价指标主要是精确率,召回率,准确率 在测试集上 TP:正类被预测为正类的数量 FN:正类被预测为负类的数量 FP:负类被预测为正类的数量 TN:负类被预测为负类
2017-03-14 20:39:09
455
原创 1.7生成模型和判别模型
生成模型:通过学习联合概率P(X,Y),然后求出条件分布P(Y|X)为预测模型,典型如:朴素贝叶斯模型,隐马尔科夫模型 判别模型:学习的是条件概率P(Y|X)和决策函数f(X)作为预测函数,典型如:k临近法,感知机,决策树,logistic回归模型,最大熵模型,支持向量机,提升方法,条件随机场 生成优点:生成方法可以还原出联合概率P(X,Y),判别不能,生成方法收敛更快,存在隐变量时,不能使用判
2017-03-14 19:34:46
414
原创 1.6 泛化能力
泛化能力:对未知数据的预测能力,我们通常用测试数据的测试误差来来评价泛化能力,但是由于测试数据集是有限的,测试误差很依赖测试数据集,所以需要在更多的未知的甚至全数据集合上评价其泛化能力 而模型预测值与真实值的误差的期望就是期望风险(符合某个联合分布P(X,Y),同样是未知而又真实存在的),泛化误差和训练误差之间是成正相关的,假设空间在有限个函数模型下,训练误差越小,泛化误差越小,泛化误差的上界以一
2017-03-14 18:34:49
2184
原创 1.5 正则化和交叉验证
上一节说到:如何防止过拟合和欠拟合呢,即选择一个模型复杂度适中的模型,使得训练误差和测试误差均较小。常用两个方法:正则化和交叉验证 正则化:经验风险+正则化项=结构风险,而正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化值越大,为了简单在此可以把正则化项看作是模型参数个数、模型参数值的函数,不妨在此取模型参数向量的范数(1-范数(参数个数),2-范数(参数值)),在此过程中,不需要划分样
2017-03-14 17:54:33
697
原创 1.4 模型评估和模型选择
训练误差和测试误差有区别:两个可以不一致,一个用于训练模型,一个用于评估模型 过拟合:如果一味的追求提高对训练数据的预测能力,那么模型的复杂度往往比真模型更高,加上训练数据本身存在噪声,所以你对训练数据越拟合,那么可能越有问题,即学习得到模型参数过多,以至于模型对已知训练数据预测的很好,但对未知数据的预测很差。模型复杂,效果较差是我们不愿看到的。 欠拟合:模型复杂度较低,比真模型复杂度要低,学习
2017-03-14 16:34:55
593
原创 1.3 统计学习三要素
模型:由参数向量决定的函数族(条件概率分布函数/决策函数),需要求模型参数向量 策略:选择最优模型的依据,如经验风险最小还是结构风险最小来求的最佳参数 算法:模型策略最优化,怎么去求解参数使得参数向量和真实的参数值误差小,并且复杂度低,既包括时间复杂度也包括空间复杂度,主要计算速度和存储空间的考虑模型的假设空间: 参数空间: 策略 损失函数; 风险函数: 经验风险函数: 结构风险函数
2017-03-14 11:49:09
708
原创 1.2 监督学习
预测问题分类 输入和输出均为连续变量的预测问题:回归问题 输出变量为有限个离线变量的预测问题:分类问题 输入和输出均为变量序列的预测问:标注问题 监督学习的重要假设 假设X与Y遵循某一个联合概率分布P(X,Y)(存在但是未知的分布),并且是独立同分布的,我们通常认为我们的得到的数据是依联合概率分布P(X,Y)产生的 监督学习的模型 概率模型和非概率模型 条件概率分布:P(Y|X)
2017-03-14 11:30:16
294
原创 1.1 统计学习分类
统计学习 1.监督学习 supervised learning 2.非监督学习 unsupervised learning 3.半监督学习 semi-supervised learning 4.强化学习 reinforcement learning 常用词汇 训练集:training data 假设空间:hypothesis space 测试数据:test data 评价准则:ev
2017-03-13 14:14:14
459
原创 键盘监听
组件事件监听:主类继承ActionListener并实现actionPerformed(ActionEvent e) 方法(e.getActionCommand().equals()……,),当然可以单独写一个自定义监听类(如面板类)继承ActionListener并实现actionPerformed(ActionEvent e)方法 组件(如按钮an1):an1.addActionListene
2017-02-25 11:17:12
1091
原创 事件监听
java.awt.event.* javax.swing.event.*事件监听类:ActionListererqq聊天 1、继承JFrame、继承ActionListerer(实现actionPerformed(ActionEvent e) 方法) 2、组件,面板(绘图图形),面板,布局等 3、监听:组件1.addActionListerer(this):this监听
2017-02-23 21:57:31
334
原创 绘图
1.界面 2.自己制作面板内容,所以可以通过继承JPanel,重写paint方法(Graphics g): 绘制图形及填充 g.drawOval(x,y,xa,yb) g.drawLine(x1,y1,x2,y2) g.drawRect(x,y,long,width) g.draw3DRect(x,y,long,width,true/false(凸凹))每个图形都可以设置3d效果 g.
2017-02-22 22:38:26
293
原创 print流
a=DateOutputStream(new fileOutput(path)).writelong(1234567) :数据流写入二进制给计算机识别的方式写进a中 b=PrintStream(path).println(1234567):人们习惯的看得的字符形式写入b中 PrintStream p1=new PrintStream(path); 写入:p1.printIn(“反抗螺丝钉jfk
2017-02-21 22:06:02
341
原创 流
文件流: file字符(reader\writer)、file字节类(inputstream/outputstream) 缓冲流: 缓冲输入字节流a=bufferinputstream(fileinputstream)、 hc=new byte[1024]:缓冲区大小 int ff; ff=a.read(hc); 输出b=bufferoutputstream(fileoutputstr
2017-02-21 21:24:51
278
原创 字节流
1.文件流 文本类(两个字节为单位传输(一个字符)所以会快,但是对于其他非文本文件在编码时会产生乱码) fz=new FielReader():复制(读入内存) zt=new FielWriter():粘贴(写入硬盘) int ff=fz.read() while(ff!=-1) { nr=char(ff); zt.write(nr); ff=fz.
2017-02-20 21:40:50
294
原创 IO流
IO流:连接程序和设备(硬盘)的管道,用于数据的传输,管道上有很多按钮,可以实现不同的功能 流分类: 四大基本抽象流(特殊的抽象的类):输入流、输出流、字符流()、字节流 重点使用:文件流、缓冲流、转换流、数据流、Print流、Object流流包:java.io.* 以程序员的角度来看输入输出 read input 输入流 write output 输出流 read vs write
2017-02-19 21:44:07
201
原创 生产消费问题
仓库类:包含生产和消费两个方法,并且生产和消费要保证线程同步,还要保证库存空和满,库存空时需要消费先暂停(就绪)等待生产(唤醒)后在消费(在唤醒),库存满时生产先暂停(就绪)等待消费(唤醒)后在生产(唤醒),当库存不满但不空时可以边生产边消费(不需要暂停任何一个) 生产类:传入仓库类,创建生产线程(Runnable)/当然也可以Thread方式 消费类:传入仓库类,创建消费线程(Runnable
2017-02-19 21:12:28
210
原创 买票(1)
有100张票,各个车站都在卖,那么设计了多线程和线程安全的问题 方式一用线程同步锁synchronized synchronized 声明在函数前或者声明在代码块之前(即:{}之前)class MaiPiao implements Runnabel{ public static int chepiao=100;--static 静态,作用是当同一个类被new多次时共享该变量 S
2017-02-16 22:34:09
365
原创 线程1
线程控制 线程的让步和阻塞: 让步:Thread.yield(),在创建线程时设置(条件) 阻塞: ThreadA.join(),在开启线程后设置,此时会把当前线程(主线程)停止,让调用join方法的线程执行完成后,在执行其它线程和主线程。
2017-02-15 22:11:09
340
原创 线程
创建多线程 方式一:创建:继承Thread类,重写run()方法;开启:new实例(new多少个就有多少个进程),调用start()方法(开启线程) 第一步:创建线程 创建线程(子线程)代码类A: 创建一个类A继承Thread类,重写Thread的run()方法:把要执行的代码写进去,就创建了线程的代码(for 循环打印是个hello) 第二步:开启线程 在另一个类B的主方法(主线程)实
2017-02-14 21:45:45
259
原创 记事本窗口(界面)
java.awt.* :界面设计但不涉及菜单 javax.swing.*:界面设计但不涉及菜单java.awt.event.*:主要是:菜单的设计记事本有单独的面板,菜单条,不参与布局,但窗口有布局,但记事本的面板不会被布局影响1.容器 JFrame 2.记事本面板(菜单条) JMenuBar 3.菜单按钮 JMenu:有下一级菜单(可以添加本身类型的构造二级菜单) JMenuItem
2017-02-12 20:19:39
3102
原创 聊天窗口设计
一、窗口建立:1.主类:继承容器类和监听器类 2.声明组件数组和面板数组:只声明不初始化 3.main方法:实例化本类:new 构造器 4.构造器:初始化或实例化组件和面板(大小,名称),窗口布局选择(默认边界布局),面板布局选择(默认流式布局),组件添加进面板(位置),面板和组件添加进窗口(位置),窗口设置:窗口最大化否,关闭内存释放否,窗口显示否 总之:添加时,组件先进面板,然后组件和面
2017-02-12 16:22:52
1139
原创 布局管理器之BorderLayout:边界布局管理器
1:主类继承容器类JFrame类:窗口 2:主函数之前定义所有的(这里按钮)组件类JButton (按钮) JButton anniu1,anniu2,anniu3,anniu4,anniu5 3:主函数 4:构造器(组件设置名字东西南北中(大小可以设置?),添加组件顺序也必须是东西南北中一一对应) anniu1=new anniu1(“东”) anniu2 =new anniu2(“
2017-02-11 22:06:07
932
原创 JFrame容器
图形化用户界面包 java.awt javax.swingJFrame 类窗体:窗口(默认不显示,方法setViserble(true/false),显示或则不显示) 注意:可以设置窗口本身位置,大小(像素),颜色,标题,JFrame.setTitle(String name):窗口标题 JFrame.setSize(int x,int y):大小(像素) JFrame.setLocati
2017-02-11 21:19:17
1002
1
原创 图像化用户界面介绍
一、布局 1.组件(单个存在相当于按钮)(菜单,标签,文本框(密码框),滚动条,单选,复选,按钮等),和用户交互的对象 2.容器(组件不能独立的显示出来),只能将组件放在容器里才能正常的显示(屋子和家具的关系哦), 3.(布局)将组件合理有序的排列和分布在容器中,包括组件的位置,大小称为布局(Layout) 4.每个容器都有自己的布局管理器,容器内的某个组件需要改变属性时,就需要调用起组件所
2017-02-11 20:45:22
344
原创 反射类
某个类型的实例对象l 通过反射获取这个对象的所有方法名,方法返回值类型,构造器,构造器参数名,参数(变量)类型,参数(变量)权限,方法权限
2017-02-11 20:07:59
168
原创 泛型作用
泛型: 1、在集合中限定了泛型,添加的对象就只能存储指定的泛型的类对象,读取集合元素不用强转,并且避免了强转时的类型错误不被编译器捕获的问题 2、在类中指定参数的类型(相当于定义的类的初始变量类型),注意在类里的新建变量类型和泛型一致,相当于是构造器的参数类型 3、在方法中使用泛型(方法传递的参数用制定类型(泛型))集合中使用泛型ArrayList<String> a=new ArrayLi
2017-02-11 19:52:44
362
原创 List和Map的区别
常用: ArrayList,LinkedList,Vector,Stack,HashMap,Hashtable 用法特征list和map的区别:有键值和没有键值 ArrayList和HashMap:线程不同步,效率高安全性低(本地和没有利益的网络) Vector和Hashtable :线程同步,效率低安全性强(使用于网络,特别是设计财产利益)
2017-02-11 19:04:57
1787
转载 网站一点了解
网站日志分析听语音 浏览:4256|更新:2012-10-05 12:21 IIS的FTP日志文件默认位置为%systemroot%\system32\logfiles\MSFTPSVC1\,对于绝大多数系统而言(如果安装系统时定义了系统存放目录则根据实际情况修改)则是C:\winnt\system32\logfiles\ MSFTPSVC1\,和IIS的WWW日志一样,也是默认每天一个日志
2017-02-10 16:16:03
296
原创 python错误
格式1:try.....except 错误类型1,e: print e or raise.... except 错误类型2,e: print e raise...finally....例如:try: print 'try...' r = 10 / int('a') print 'result:', rexcept Value
2017-02-10 16:14:05
285
原创 java服务器代理线程
服务器线程在接受到客户端输入后分配服务器代理线程import java.util.*;import java.io.*;import java.net.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;public class serverAgentTh
2017-02-07 22:42:03
666
原创 java服务器线程
服务器线程用于支配服务器代理线程import java.util.*;import java.io.*;import java.net.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;public serverThread extends Thread
2017-02-07 22:08:00
311
原创 python技巧(20)
一、文件状态 文件类型 文件权限 文件访问,修改,更新时间 文件的大小 二、获取状态 python下 系统调用os模块;stat,fstat,lstat 这里三个文件 1. s= os.stat(‘a.txt’) 2. os.lstat(‘x.txt’):只返回x.txt的状态,不返回a.txt os.stat(‘x.txt’):最终返回a.txt的状态 3
2017-02-03 22:29:50
392
原创 python技巧(19)
流形式:按字节多少来读写的,read和write方法I/O操作:按块写入读入,有的不足块和足块一次I/O所耗时间是一样的(不是按字节写入的),所以只有减少操作的次数,那么可以用缓冲区。 全缓冲:只有块充满了,才执行 I/O 行缓冲:碰到换行符,执行I/O 无缓冲:直接执行I/O 块大小和平台决定了缓冲区大小 一、全缓冲 1.python默认的全缓冲:块的大小为4096个字节>>>f=o
2017-02-03 21:54:12
199
原创 java2
JFrame:面板类 JLabel 文本框标签 JTextField 文本框 JButton 按钮 JList 列表 JPanel 面板 JScollPane 回滚条 JSplitPane 分割界面 ServerSocket 套接字接口 Vector 集合(安全)
2017-02-02 22:02:20
150
原创 java包1
开发顺序:界面,业务逻辑,完善功能 1.图形化界面包 界面包:java.awt.* 界面事件包:java.awt.event.* 界面包:javax.swing.*:界面布置 界面事件包:javax.swing.event.*:具体界面控件功能 2. 工具包:java.util.* 集合类Vector 3. 网络包:java.net.* 4. 数据流:java.io.* 5.
2017-02-01 21:18:47
221
原创 小知识1
端口号:每个服务器有很多的服务,因此人们想到有不同端口号来区分不同的服务 端口号范围:0~65536 注意: 1.0~1023知名端口,这些端口号一般固定分配给一些服务,但是网络服务是可以使用其他端口号的,如果不是默认的端口号则应该在 地址栏上指定端口号,方法是在地址后面加上冒号“:”(半角),再加上端口 号。比如使用“8080”作为WWW服务的端口,则需要在地址栏里输入“”。 2.1024
2017-02-01 19:37:21
335
原创 python技巧(18)
处理二进制文件 为什么存储为二进制文件,如音频,视频,图形?,个人认为是追求实时读速度在linux上可以安装vlc播放wav音频文件(二进制文件) 二进制文件用struct模块的unpack解析 wav音频文件构成看成两部分:文件头(前44个字节)、文件内容打开 f=open(‘C:\Users\yongsheng\Desktop\a.wav’,’rb’) start=f.read(44)
2017-01-31 21:32:44
213
原创 python技巧(17)
如何读写文本文件 python2和3的区别 2 3 str字符串实际时一连串的bytes unicode只在内存中用是中介,读取时转换为unicode,存储时把unicode转换为指定编码python2:在写入文件前(还在内存中到外部时需存为指定的编码格式)对unicode进行编码,读入文件后(进入内存需要转成unicode)对二进制字符串进行解码 python
2017-01-31 20:36:54
229
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人