1.画3D曲线及等高线
linspace(d1,d2,n); %在d1,d2之间产生n个等差数据
surf(x,y,z); %以x,y,z为坐标轴画3D图
surfc(x,y,z): %以x,y,z为坐标轴画3D图(加等高线)
contour(x,y,z); %画等高线
2.求解最优化问题
optimset('参数1','参数1值',’参数2‘,’参数2值);%该函数返回一个结构体,包含各种设置:迭代次数,结束条件等;
Fminunc(@costfunction,initialtheta,options);%costfunction为代价函数计算,initialtheta为设置的初始theta值,options为optimset函数的返回值。
最优化函数为matlab自带函数,可以直接应用,应用步骤:1.计算代价函数,2设定最优化函数相关设置,3.应用最优化函数Fminunc(还有其他的优化函数)。
3.数字识别
①Logistic Regression
randperm(m);将1-m个数字打乱随机排列,m=10,则得到 3 7 5 6 9 2 4 8 1 10;
reshape(A,m,n);%顾名思义将矩阵A按列检索改写成按列排成的m行n列形式,比如有一行[1 2 3 4]采用reshape(A,2,2),得[1 3;2 4];
[val p]=max(A,[],2);%返回A矩阵行最大值的值val和该值对应的列数p,用来返回概率最大的数字。
思路(5000个数字图像,图像像素20*20):
1.根据图像像素可以选20*20=400个特征x1,x2...x400;
2.根据数据集选用最优算法 (如上2.求解最优化问题)得到输出为0-9分别对应的特征系数theta;
3.根据theta计算0-9分别对应的概率,选概率最大的输出;
4.对数据集进行计算输出的数字与实际数字对比,求得概率。
②Neural Networks
思路(5000个数字图像,图像像素20*20):
1.第一层到第二层:a1加a1(0),计算a2;
2.第二层到第三层:a2加a2(0),计算a3;...以此类推
3.输出
4.神经网络学习(3.数字识别②Neural Networks的继续)
1.对数据集进行正向传播计算;
2.对数据集进行反向传播计算代价函数与grad函数;
3.梯度检验;
4.利用反向传播代价函数与grad函数计算特征系数theta;
5.根据theta计算0-9分别对应的概率,选概率最大的输出;
6.对数据集进行计算输出的数字与实际数字对比,求得概率。
5.正则化与偏差、方差
bsxfun(@minus, X, mu);计算一个矩阵减去(加,乘,除等)一个向量的结果矩阵,将向量复制成与矩阵相同维数进行 点运算;
std(A);计算标准差;
思路(给定(x,y)数据集,画学习曲线,确定过拟合与欠拟合问题,而自行调整正则化参数,特征及数据集个数)
1.选一个一次函数模型,计算正则化代价函数与梯度函数;
2.训练线性回归系数;
3.画学习曲线(判断过拟合与欠拟合);
//----------------分割线---------------//
4.选模型:对特征进行n次方计算,x^2,x^3,x^4...x^p。这时数据差距太大,需要进行归一化与标准化处理;
5.对模型训练系数,画学习曲线(判断过拟合与欠拟合);
6.画正则化系数与误差曲线图(选最优正则化系数)。
6.支持向量机
①二维数据分类svm问题
svmTrain(X, y, C, @linearKernel, 1e-3, 20);X为输入,y为输出,@linearKernel选线性/高斯,1e-3为间隙(宽度容量),20为结束迭代次数。
②邮件分类
1.根据待判邮件中的单词与单词表对应,得到邮件对应的单词索引数向量(processEmail函数);
2.根据单词索引数向量得到特征项(emailFeatures函数);
3.使用svmPredict函数判断是否是垃圾邮件。
7.K均值算法与主成分分析
① K均值算法
1.随机选簇中心u1,u2,u3...
2.将数据点分类为最近的簇中心一组;
3.计算所有点到簇中心的距离均值;
4.不断循环,找到合适的额簇中心。
②主成分分析法
1.归一化与零均值
2.将特征空间m维降低到k维,根据已知特征值X映射到Z
1)计算协方差矩阵sigma=1/m(X'*X)
2)计算sigma矩阵特征向量[U S V ]=svd(sigma)
3)Z=X*U(:,1:k)
8.异常检测与推荐系统
①异常检测
1.计算参数mu,sigma;
2.根据高斯参数计算需要预测的点的概率;
3.根据召回率,精准率计算阈值epsilon;
4.判断是否为异常。
②推荐电影
1.初始化theta,x;
2.计算代价函数,采用fmincg计算最优theta与X;
3.根据自己的喜好,计算评分矩阵Y,选评分前十列出。