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++实现的更多相关文章

  1. 李航统计学习方法(第二版)(六):k 近邻算法实现(kd树(kd tree)方法)

    1. kd树简介 构造kd树的方法如下:构造根结点,使根结点对应于k维空间中包含所有实例点的超矩形区域;通过下面的递归方法,不断地对k维空间进行切分,生成子结点.在超矩形区域(结点)上选择一个坐标轴和 ...

  2. 李航统计学习方法(第二版)(五):k 近邻算法简介

    1 简介 k近邻法的输入为实例的特征向量,对应于特征空间的点;输出为实例的类别,可以取多类.k近邻法假设给定一个训练数据集,其中的实例类别已定.分类时,对新的实例,根据其k个最近邻的训练实例的类别,通 ...

  3. 李航统计学习方法(第二版)(十):决策树CART算法

    1 简介 1.1 介绍 1.2 生成步骤 CART树算法由以下两步组成:(1)决策树生成:基于训练数据集生成决策树,生成的决策树要尽量大;(2)决策树剪枝:用验证数据集对己生成的树进行剪枝并选择最优子 ...

  4. 精通Web Analytics 2.0 (4) 第二章:选择你的网络分析灵魂伴侣的最佳策略

    精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第二章:选择你的网络分析灵魂伴侣的最佳策略 在Web Analytics 2.0的新世界秩序中,您必须跳出"单一真理来 ...

  5. Adaboost算法的一个简单实现——基于《统计学习方法(李航)》第八章

    最近阅读了李航的<统计学习方法(第二版)>,对AdaBoost算法进行了学习. 在第八章的8.1.3小节中,举了一个具体的算法计算实例.美中不足的是书上只给出了数值解,这里用代码将它实现一 ...

  6. 统计学习导论:基于R应用——第二章习题

    目前在看统计学习导论:基于R应用,觉得这本书非常适合入门,打算把课后习题全部做一遍,记录在此博客中. 第二章习题 1. (a) 当样本量n非常大,预测变量数p很小时,这样容易欠拟合,所以一个光滑度更高 ...

  7. 统计学习方法:KNN

    作者:桂. 时间:2017-04-19  21:20:09 链接:http://www.cnblogs.com/xingshansi/p/6736385.html 声明:欢迎被转载,不过记得注明出处哦 ...

  8. 【NLP】基于统计学习方法角度谈谈CRF(四)

    基于统计学习方法角度谈谈CRF 作者:白宁超 2016年8月2日13:59:46 [摘要]:条件随机场用于序列标注,数据分割等自然语言处理中,表现出很好的效果.在中文分词.中文人名识别和歧义消解等任务 ...

  9. 第二章 C语言编程实践

    上章回顾 宏定义特点和注意细节 条件编译特点和主要用处 文件包含的路径查询规则 C语言扩展宏定义的用法 第二章 第二章 C语言编程实践 C语言编程实践 预习检查 异或的运算符是什么 宏定义最主要的特点 ...

随机推荐

  1. Apache Drill 调研学习

    Apache Drill 调研学习 ## 一.Drill概述 在大数据时代,对于Hadoop中的信息,越来越多的用户需要能够获得快速且互动的分析方法.大数据面临的一个很大的问题是大多数分析查询都很缓慢 ...

  2. python中类的设计问题(一些高级问题探讨,函数重载,伪私有,工厂模式,类方法等)

    从这里再次体现了python语言强大的灵活性.某些在高级语言中看似不严谨需要尽量避免的地方在python中都是允许的. 比如: (1),异常可以用来处理错误 (2),方法,类也都可以视为对象. (3) ...

  3. [LeetCode]-DataBase-Rising Temperature

    Given a Weather table, write a SQL query to find all dates' Ids with higher temperature compared to ...

  4. 使用C#检测电脑上是否安装某软件

    private void button2_Click(object sender, EventArgs e) { try { string app = "chrome.exe"; ...

  5. vivo 部分链表反转

    方法一:使用栈交换需要反转的数字 #include <iostream> #include <stack> #include "list.h" using ...

  6. 阶段3 1.Mybatis_01.Mybatis课程介绍及环境搭建_06.mybatis的环境搭建

    创建实体类,实现Serializable接口 属性名和数据库的字段名保持一致 Date字段需要导入包 生成gettter和setter,再生成一个ToString的方法 创建持久层Dao 创建接口 里 ...

  7. Centos 安装 FTP

    安装教程:   基于 CentOS 搭建 FTP 文件服务 搭建完成后,使用windows文件夹访问FTP报错,请确保输入的文件名是否正确,并且您有权访问此文件. 先确认ftp服务正常 修改:   设 ...

  8. webService框架CXF的简单使用

    最近本来已经将上一个项目交活,全身心投入了另外项目的前端的开发工作.可之前的项目经理通知我,之前的项目需要做一个webService的功能,于是稍微做了一下webService,可是忘了通知我现在的项 ...

  9. 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 ...

  10. eslint+prettier 的 VSCode配置项

    { "files.autoSave": "off", "editor.fontSize": 12, "terminal.integ ...