![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++实现机器学习/图像处理算法
记录自己的入门学习进度
evilwind2000
这个作者很懒,什么都没留下…
展开
-
09.维纳滤波
#include <bits/stdc++.h>#include <opencv2/opencv.hpp>using namespace cv;using namespace std;void calcPSF(Mat& outputImg, Size filterSize, int len, double theta);void fftshift(const Mat& inputImg, Mat& outputImg);void filter2原创 2021-04-07 16:46:14 · 335 阅读 · 0 评论 -
08.DCT图像压缩
#include<bits/stdc++.h>#include<opencv2/opencv.hpp>using namespace cv;using namespace std;const double pi = 3.1415926;int width, height, channels;double dct1[80][80][10][10];double result[80][80][10][10];double result2[80][80][10][10];原创 2021-03-20 15:52:57 · 592 阅读 · 1 评论 -
07.K-means聚类
#include<bits/stdc++.h>#define ll long longusing namespace std;const double inf=1.0*(0x3f3f3f3f);const double eps=1e-6;double solve(double x[][5],int m,int K,int n)//训练样本数 簇数量 样本维数(默认m>K { double mu[10][5]; for(int i=1;i<=K;i++)//多次运行原创 2021-03-11 14:40:40 · 67 阅读 · 0 评论 -
06.神经网络反向传播+梯度下降分类
模型不太对。。。是一次失败的尝试,后面再改吧。#include<bits/stdc++.h>#define ll long longusing namespace std;const double eps=1e-4;//除去a0每层分别有2 4 4 2个节点 double g(double x)//激活函数 { return 1.0/(1.0+exp(-x)); } double theta[20][20][20];double delta[20][20];doubl原创 2021-03-06 17:12:47 · 72 阅读 · 0 评论 -
05.神经网络简单异或实例(固定参数)
#include<bits/stdc++.h>#define ll long longusing namespace std;double h(double x)//激活函数 { return 1.0/(1.0+exp(-x)); } double pand(double * x)//与神经元 { x[0]=1.0; double ans=-30.0*x[0]+20.0*x[1]+20.0*x[2]; return h(ans);}double pnxand原创 2021-03-06 10:02:53 · 194 阅读 · 0 评论 -
04.正则化线性回归/Logistic回归
线性回归的正则化#include<bits/stdc++.h>#define ll long longusing namespace std;const double eps=1e-8;double * solve(double x[][10],double y[],int m,int n)//输入数组x,y训练集大小m,特征数量n{ static double theta[10]; double lambda=1.0; double alpha=0.01; do原创 2021-03-05 20:02:03 · 147 阅读 · 0 评论 -
03.梯度下降解Logistic回归
虽然是不同的算法,但是最后结果的形式和多元线性回归几乎一样,只要稍微改改就好了正规方程法解线性回归只涉及简单的矩阵运算即使要使用也不会有太多改动所以不会写#include<bits/stdc++.h>#include<math.h>#define ll long longusing namespace std;const double eps=1e-10;double * solve(double x[][10],double y[],int m,int n)//输入原创 2021-03-05 14:02:18 · 119 阅读 · 0 评论 -
02.梯度下降解多元线性回归
每次迭代时间复杂度O(m*n)#include<bits/stdc++.h>#define ll long longusing namespace std;const double eps=1e-10;double * solve(double x[][10],double y[],int m,int n)//输入数组x,y训练集大小m,特征数量n{ static double theta[10]; double alpha=0.01; double tmp[10];原创 2021-03-04 18:08:46 · 169 阅读 · 2 评论 -
01.梯度下降解单变量线性回归
之前事情太多一直没写博客,上学期十二月份打完区域赛就耻辱退役了。。。这段时间会一边学习一边用C++实现机器学习和图像识别的算法,希望代码没事。。。#include<bits/stdc++.h>#define ll long longusing namespace std;const double eps=1e-10;//假设函数为y=theta[1]*x+theta[0]//Batch梯度下降法求解线性回归 double * solve(double x[],double y[],原创 2021-03-04 15:21:11 · 213 阅读 · 1 评论