统计学习方法——第二章的c++实现
1、东西搞丢了,只写一部分
2、算法那收敛性
证明逻辑:
a、γ是yi*(wopt*Xi)最小值
b、R是Xi最小值
c、k<=(R/γ)^2
难打公式,直接说,Wk由Wk-1迭代而来,所以事实上,只需要找到迭代第三项就可以了,迭代第三项有R有eta,Wk的迭代公式有,通过放缩,得到k,eta,R的关系。
与此同时,得到Wk与Wopt的关系,这里,Wopt是最终结果的W,同样,将Wk拆分,与上面a配合,得到eta与R 关系,结合上面这条,得证。
下面是C++代码
感知机原始代码:
#include <iostream>
using namespace std; int main_2() {
double x1[] = {,,};
double x2[] = {,,};
double y[] = {,,-};
double w[] = {,};
double b[] = { };
int index = ;
double eta = ;
while ( index <= ) {
double temp = y[index] * (x1[index] * w[] + x2[index] *w[] + b[]);
if (temp <= ) {
w[] = w[] + eta * (x1[index])*y[index]; cout << w[] << endl;
w[] = w[] + eta * (x2[index])*y[index]; cout << w[] << endl;
b[] += y[index]; cout << b[] << endl;
index = ;//这一步很重要,实现了每当出现问题,全部重新开始 //cout << w[0] << " " << w[1];
//cout << b[0]; }
else
{
index = index+;
} };
cout << w[]<<" "<<w[]<<endl;
cout << b[];
system("pause");
return ;
}
感知机对偶代码:
#include<iostream> using namespace std;
int main()
{
int x1[] = { ,, };
int x2[] = { ,, };
int y[] = { ,,- }; int b = ;
int a[] = { ,, };
int G[][];
for (int i = ; i < ; i++)
for (int j = ; j < ; j++)
{
G[i][j] = x1[i] * x1[j] + x2[i] * x2[j];
cout << G[i][j] << "\t";
if (j == ) } int index = ;
int eta = ;
while (index < )
{
int temp = ;
for (int j = ; j < ; j++)
{
temp += a[j] * y[j] * G[j][index];
}
int all = y[index] * (temp + b);
if (all <= )
{
a[index] += eta;
b += y[index];
index = ; }
else
{
index++;
} }
cout << "a:" << a[] << " " << a[] << " " << a[] << endl;
cout << "b:" << b; int w[] = { , };
for (int i = ; i < ; i++)
{
w[] += a[i] * y[i] * x1[i];
w[] += a[i] * y[i] * x2[i];
}
b = ;
for (int i = ; i < ; i++)
{
b += a[i] * y[i];
}
cout << endl << "w:" << w[] << " " << w[] << endl;
cout << "b:" << b;
getchar();
return ;
}
统计学习方法——第二章的c++实现的更多相关文章
- 李航统计学习方法(第二版)(六):k 近邻算法实现(kd树(kd tree)方法)
1. kd树简介 构造kd树的方法如下:构造根结点,使根结点对应于k维空间中包含所有实例点的超矩形区域;通过下面的递归方法,不断地对k维空间进行切分,生成子结点.在超矩形区域(结点)上选择一个坐标轴和 ...
- 李航统计学习方法(第二版)(五):k 近邻算法简介
1 简介 k近邻法的输入为实例的特征向量,对应于特征空间的点;输出为实例的类别,可以取多类.k近邻法假设给定一个训练数据集,其中的实例类别已定.分类时,对新的实例,根据其k个最近邻的训练实例的类别,通 ...
- 李航统计学习方法(第二版)(十):决策树CART算法
1 简介 1.1 介绍 1.2 生成步骤 CART树算法由以下两步组成:(1)决策树生成:基于训练数据集生成决策树,生成的决策树要尽量大;(2)决策树剪枝:用验证数据集对己生成的树进行剪枝并选择最优子 ...
- 精通Web Analytics 2.0 (4) 第二章:选择你的网络分析灵魂伴侣的最佳策略
精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第二章:选择你的网络分析灵魂伴侣的最佳策略 在Web Analytics 2.0的新世界秩序中,您必须跳出"单一真理来 ...
- Adaboost算法的一个简单实现——基于《统计学习方法(李航)》第八章
最近阅读了李航的<统计学习方法(第二版)>,对AdaBoost算法进行了学习. 在第八章的8.1.3小节中,举了一个具体的算法计算实例.美中不足的是书上只给出了数值解,这里用代码将它实现一 ...
- 统计学习导论:基于R应用——第二章习题
目前在看统计学习导论:基于R应用,觉得这本书非常适合入门,打算把课后习题全部做一遍,记录在此博客中. 第二章习题 1. (a) 当样本量n非常大,预测变量数p很小时,这样容易欠拟合,所以一个光滑度更高 ...
- 统计学习方法:KNN
作者:桂. 时间:2017-04-19 21:20:09 链接:http://www.cnblogs.com/xingshansi/p/6736385.html 声明:欢迎被转载,不过记得注明出处哦 ...
- 【NLP】基于统计学习方法角度谈谈CRF(四)
基于统计学习方法角度谈谈CRF 作者:白宁超 2016年8月2日13:59:46 [摘要]:条件随机场用于序列标注,数据分割等自然语言处理中,表现出很好的效果.在中文分词.中文人名识别和歧义消解等任务 ...
- 第二章 C语言编程实践
上章回顾 宏定义特点和注意细节 条件编译特点和主要用处 文件包含的路径查询规则 C语言扩展宏定义的用法 第二章 第二章 C语言编程实践 C语言编程实践 预习检查 异或的运算符是什么 宏定义最主要的特点 ...
随机推荐
- Apache Drill 调研学习
Apache Drill 调研学习 ## 一.Drill概述 在大数据时代,对于Hadoop中的信息,越来越多的用户需要能够获得快速且互动的分析方法.大数据面临的一个很大的问题是大多数分析查询都很缓慢 ...
- python中类的设计问题(一些高级问题探讨,函数重载,伪私有,工厂模式,类方法等)
从这里再次体现了python语言强大的灵活性.某些在高级语言中看似不严谨需要尽量避免的地方在python中都是允许的. 比如: (1),异常可以用来处理错误 (2),方法,类也都可以视为对象. (3) ...
- [LeetCode]-DataBase-Rising Temperature
Given a Weather table, write a SQL query to find all dates' Ids with higher temperature compared to ...
- 使用C#检测电脑上是否安装某软件
private void button2_Click(object sender, EventArgs e) { try { string app = "chrome.exe"; ...
- vivo 部分链表反转
方法一:使用栈交换需要反转的数字 #include <iostream> #include <stack> #include "list.h" using ...
- 阶段3 1.Mybatis_01.Mybatis课程介绍及环境搭建_06.mybatis的环境搭建
创建实体类,实现Serializable接口 属性名和数据库的字段名保持一致 Date字段需要导入包 生成gettter和setter,再生成一个ToString的方法 创建持久层Dao 创建接口 里 ...
- Centos 安装 FTP
安装教程: 基于 CentOS 搭建 FTP 文件服务 搭建完成后,使用windows文件夹访问FTP报错,请确保输入的文件名是否正确,并且您有权访问此文件. 先确认ftp服务正常 修改: 设 ...
- webService框架CXF的简单使用
最近本来已经将上一个项目交活,全身心投入了另外项目的前端的开发工作.可之前的项目经理通知我,之前的项目需要做一个webService的功能,于是稍微做了一下webService,可是忘了通知我现在的项 ...
- 6.824 Lab 2: Raft 2B
Part 2B We want Raft to keep a consistent, replicated log of operations. A call to Start() at the le ...
- eslint+prettier 的 VSCode配置项
{ "files.autoSave": "off", "editor.fontSize": 12, "terminal.integ ...