逻辑回归 逻辑回归【介绍】逻辑回归是用来解决分类问题的,典型的分类方式是二分类,可推广到多分类。线性回归的y是连续的,经过非线性函数sigmoid后将值约束在(0,1)区间内,设定一个阈值,通过判断与阈值的大小关系可将输入分成两类。Sigmoid函数 曲线
线性回归 线性回归【介绍】线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。其表达形式为为误差,服从均值为0的正态分布。回归分析中,根据自变量个数,且因变量只有一个,因变量和自变量之间是线性关系,又分为一元线性回归分析和多元线性回归分析。 【模型】 【Loss function】: 一种推
梯度下降法 梯度下降法梯度下降算法是批量梯度下降算法(BGD)、随机梯度下降算法(SGD)、小批量随机梯度下降(MSGD)算法的总称批量梯度下降算法是对所有样本求平均梯度后更新,随机梯度下降算法是随机选取一个样本计算梯度更新,小批量随机梯度下降算法是随机将所有样本分为几部分,然后选择一份求平均梯度更新。 对批量梯度下降法和随机梯度下降法的总结:批量梯度下降---最小化所有训练样本的损失
最小二乘法 最小二乘法(又称最小平方法),它通过最小化误差的平方和寻找数据的最佳函数匹配。最小二乘法也是一种优化方法,求目标函数的最优值。并且也可以用于曲线拟合,来解决回归问题。监督学习中,如果预测的变量是离散的,我们称其为分类(如决策树,支持向量机等),如果预测的变量是连续的,我们称其为回归。回归分析中,如果只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归
简易四则计算 #include#include#include#includeusing namespace std;bool isLegalChar(char c){ if(!isdigit(c)&&c!='('&&c!=')'&&c!='+'&&c!='-'&&c!='*'&&c!='/'&&c!=' '&&c!='\t'&&c!='') return false; else
c/c++中串的处理及串的相关操作实现 c语言中字符串以字符数组的形式存储。在头文件string.h中定义了一系列字符串的操作。如strlen(),strcpy(),strcmp()等。C++中有string类,可直接用string定义对象,类中定义了相关的串操作。void strcpy(char* pstr1,char* pstr2){ while(*pstr1++=*pstr2++);}int strlen(c
产生m个1—m的不重复随机数 方法一:逐个产生这些随机数,每产生一个,都跟前面的随机数比较,如果重复,就重新产生。方法二:按顺序产生这些数,但随机产生它们的位置,用随机产生的位置将原序列置乱。例如下面产生100个100以内不重复随机数的代码: int a[100]; for(i=0; i<=99; ++i) a[i]=i; for(i=99; i>=1; --i) swap(a[i], a[ra
快速排序 QuickSort()函数:void QuickSort(int a[],int low,int hight){ if (low>=hight)return; int first=low; int last=hight; int key=a[first]; while(first<last) { while(first=key)--last; a[first
冒泡排序 Bubble 函数:void Bubble(int a[],int n){for(int i=1;i<n;i++) for(int j=1;j<n+1-i;j++) if (a[j-1]>a[j]) { int temp=a[j-1]; a[j-1]=a[j]; a[j]=temp; }}其中的交换部分也可写成swap函数,两种方法:指针与引用
Week10-乘法表 /*2014年10月16日*****//*Week10-乘法表******/#include#include using namespace std;int main(){ int i,j; for (i = 1; i <= 9; i++){ for (j = 1; j <= i; j++){ cout << j << "x" << i << "="; cout <
Week8-用if语句实现分支结构程序设计 /*2014年10月16日*****//*Week8-用if语句实现分支结构程序设计******/#include#include"math.h"using namespace std;int main(){ float x, y; cout << "输入x的值:"; cin >> x; if (x < 2)y = x; else if (x < 6)y = x*x + 1;
Week7-3输出星号图 /*2014年10月16日*****//*Week7-3输出星号图******/#includeusing namespace std;int main(){ int i,j; //倒直角 for (i = 5; i >=0; i--){ for (j = 0; j < 2 * i + 1; j++) cout << "*"; cout << ""; } //
Week7-2三个正整数的最大值 /*2014年10月16日*****//*Week7-2求出两数的正差值并输出******/#includeusing namespace std;int main(){ int a, b, Res; cout << "输入两正值:"; cin >> a>>b; if(a>b)Res=a-b; else Res = b - a; cout << "两数的正差值:" << Re
Week7-1两个电阻并联后的阻值 /*2014年10月16日*****//*Week7-1两个电阻并联后的阻值******/#includeusing namespace std;int main(){ double R1, R2, R; cout << "输入两电阻值:"; cin >> R1>>R2; R = R1*R2/(R1+R2); cout << "两个电阻并联后的阻值:" << R << ""
Week7-1圆柱体表面积 /*2014年10月16日*****//*Week7-1圆柱体表面积******/#include#define Pi 3.1415926 using namespace std;int main(){ double r, h, Area; cout << "输入半径:"; cin >> r; cout << "输入高:"; cin >> h; Area = 2 * Pi*
直接选择排序 /*2014年3月12日*****//*直接选择排序******/#include "stdio.h"#include"stdlib.h"#include"time.h"void StraightSelectSort();void swap();#define M 10int a[M],b,i,j;void main(){ srand((int)time(NULL));
折半插入排序 /*2014年3月12日*****//*折半插入排序******/#include "stdio.h"#include"stdlib.h"#include"time.h"void BinaryInsetionSort();#define M 10int a[M],b,i,j;void main(){ srand((int)time(NULL)); printf("随机生成1
直接插入排序 /*2014年3月12日*****//*直接插入排序******/#include "stdio.h"#include"stdlib.h"#include"time.h"void StraightInsetionSort();#define M 10int a[M],b,i,j;void main(){ srand((int)time(NULL)); printf("随机生
冒泡排序(随机生成10个数排序) /*2014年3月12日*//*冒泡排序******/#include "stdio.h"#include"stdlib.h"#include"time.h"void Sort();#define M 10int a[M],b,i,j;void main(){ srand((int)time(NULL)); printf("随机输入10个0-9的整数: "); for
函数调用,形参实参的变化 一般变量作函数参数,调用结束后,只改变了形式参数的值,实参不变。指针变量作函数参数,调用结束后,不能改变实参指针变量的值但可以改变实参指针变量所指向变量的值。/* 2013年11月7日 *//*一般变量作函数参数*/#include"iostream"using namespace std;void swap(int x, int y) { int t; t=x; x=y
双击运行Debug下的.exe文件,一闪而过的解决方法 双击运行Debug下的.exe文件,一闪而过的解决方法: 在return();语句前加getch();或者system(”pause“); 注意是在return前。 getch();所在头文件为:#include system("pause");所在头文件:#include ------还含有system("cls"
10个以内数的最大值与最小值及其坐标 我的程序代码://10个以内数的最大值与最小值及其坐标#include void main() { int a[10],n,max,min,M,L,i,j; printf("please input n(n<10):"); scanf("%d",&n); printf("please input %d numbers:",n ); for(i=0;i<n;i+
产生一个50X2的矩阵(二维数组),每个元素是0-10的随机数 我的代码:/**作者:xuyuanye2013*完成日期:2013年11月6日*问题描述:产生一个50X2的矩阵(二维数组),每个元素是0-10的随机数*算法:*/#include"stdio.h"// “standard input & output"(标准输入输出)头文件#include"stdlib.h"//标准库头文件,含malloc()、calloc()、reall
随机产生100个0-10的数,并输出 我的程序代码://随机产生100个0-10的数,并输出#include"stdio.h"#include"stdlib.h"#include"time.h"int main(){int a[100];srand((int)time(NULL));for(int i=0;i<100;i++) { a[i]=rand()/3276; printf("
求n个数的最大值和最小值 程序//n个数的最大值与最小值#includefloat fun(int N, float a[ ]){ int i; float max, min;max=min=a[0];for (i=1;i<N;i++){ if (a[i]>=max)max=a[i];if (a[i]<=min)min=a[i];}printf("max= %f , min= %f", m