PLA之pocket算法C++实现

该博客介绍了如何使用C++实现 PLA(Perceptron Learning Algorithm,感知机学习算法)中的口袋算法。主要内容包括读取数据文件、计算点积、更新权重、判断正确率以及进行测试。代码详细展示了矩阵操作、迭代过程以及错误率计算等步骤。
摘要由CSDN通过智能技术生成
#include<bits/stdc++.h>
using namespace std;
#define ROWS 100 
#define COLUMNS 10001 
#define MAXITERTIMES 1000
int matrix[ROWS][COLUMNS];
int trainY[ROWS],testY[ROWS],myY[ROWS];
int W[COLUMNS] = {0};//因为多了一个x0;
int bestW[COLUMNS] = {0};
ofstream output;
ifstream Input;
int iterTimes = 0;//迭代次数 
int sign(int x) {return x >= 0 ? +1 : -1; }
void makeUpMatrix(string fileName)
{
int lines = 0;
Input.open(fileName.c_str());
string line;
while(getline(Input,line))
{
stringstream ss;
int columns = 1;
//一行一句话的,所以用stringstream,整行读入的特性会方便很多 
ss.clear(); 
ss.str(line);//From:http://blog.csdn.net/lanbing510/article/details/42423333
//str()成员函数的使用可以让istringstream对象返回一个string字符串 
int dict; 
matrix[lines][0] = 1;
while(ss>>dict) //读入每行的数据集内容的词汇 
{
matrix[lines][columns++] = dict;
}
//读取完这行词汇了 
lines++;  //第几行计数 
}
Input.close();

}
void readLabels()
{
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值