机器学习001—生成训练集和测试集
将数据分成训练集和测试集: 传统处理方法,利用ranperm生成随机的编号,取前面百分比的数据作为训练集,余下的作为测试集。 代码如下: num_points = size(X,2);
split_point = round(num_points*0.7);
seq = randperm(num_points);
X_train = X(:,seq(1:split_point));
Y_train = Y(seq(1:split_point));
X_test = X(:,seq(split_
Matlab函数mink maxk topkrows(R2017b)
顾名思义,这三个函数分别是求最小的k个值,最大的k个值以及最大k行。 这几个函数的功能在实际编程过程中会经常遇到。 恰当的使用他们可以简化代码。由于是内置函数,可以使用Matlab JIT加速,这比自己编写的程序运行速度会高效一点。 以下是调用格式: B = mink(A,k)
B = mink(A,k,dim)
B = maxk(A,k)
B = maxk(A,k,dim)
B = topkrows(X,k)
B = topkrows(X,k,col)
Maple矩阵选取矩阵某一列数据
在进行Maple矩阵分解操作的过程,需要对矩阵的某一列进行归一化,这样就需要选取矩阵的某一列数据: 关键命令: A[-1..1,1] # 选取第一列
同理: A[1,-1..1] # 选取第一行
代码:
Matlab 主成分分析函数pcacov代码剖析
调用格式: [coeff,latent,explained] = pcacov(V)
这个函数针对已经求出的协方差矩阵进行计算。要结合cov函数才能进行完整的pca分析。 这个函数可以查看Matlab提供的源代码,其中清晰明了的展示了计算过程。 输出变量: -coeff: 特征向量(注意与pca函数的变量score进行区分); -latent: 特征值;[~,latent,coeff] = svd(v); 其实这里可以用eig函数替代latent = diag(latent); -expla
Matlab 如何从pca分析结果重构数据
pca的目的就是对数据进行降维。 对于已经利用pca函数求得的结果,如何利用这些信息对进行数据的重构,进而求出重构后的误差是很重要的。 具体重构过程: 利用pca进行求解,得到coeff,score,latent;[coeff,score,latent] = pca(___) -关键就在于这里的score。通过查看pca函数的源代码可知score = X*coeff.即将数据映射到pca空间后的坐标。并且矩阵大小和数据尺寸大小一致。 A=USVTA=USV^TA=USVT, Score=AV=
利用Matlab坐标轴得到漂亮的图-2
利用Matlab绘制出一条公交线路22个站点的一天内的上客总人数。下图中红色圆圈表示人数多少。 用到的函数: 利用categorical函数生成站点标签,对数据进行分类; (2018b引入) 利用duration生成时间向量,利用 xline xticks(2016b) xticklabels(2016b) 对时间刻度进行标注。
[数值分析] 利用QR分解求解最小二乘法的原理
当方程阶数较大的时,法方程的条件数变得非常大,需要使用QR分解来求解。 Ax=b [Q,R] = qr(A,0); %
x = R\(Q'*b); %
原理: 因为 ∥c2∥22为常数,\|c_2\|_2^2为常数,∥c2∥22为常数,所以上述方程可以在 Rx=c1Rx=c_1Rx=c1的时候取得极值,是为最小二乘法的解。 即 x=R−1(QTb)x=R^{-1} (Q^Tb)x=R−1(QTb) (利用精简QR分解得到的R)
1088: 发工资咯
版权声明:我的就是我的 https://blog.csdn.net/qq_41638851/article/details/89107316 #include<bits/stdc++.h>
using namespace std;
int main() {
int n;
while(scanf("%d",&n),n>0&&n<100) {
int d,ans=0;
for(int i=0; i<n; i++) {
scanf("%d",&d);
ans+=d/100;
1130: 母牛生小牛
版权声明:我的就是我的 https://blog.csdn.net/qq_41638851/article/details/89116673 #include<bits/stdc++.h>
using namespace std;
int f(int N){
if(N<4)
return 1;
else
return f(N-1)+f(N-3);
}
int main(){
int N;
cin>>N;
cout<<f(N);
return 0;
}
#includ
1004: C语言考试练习题_排列
版权声明:我的就是我的 https://blog.csdn.net/qq_41638851/article/details/89165404 有些问题当时做有点难,但是做后一看,哦草,好简单啊 #include<bits/stdc++.h>
using namespace std;
int main() {
int i,j,k,t,n,a[5];
scanf("%d%d%d%d",&a[1],&a[2],&a[3],&a[4]);
for(i=4; i>0; i--) //四个数该
1147: 老王赛马
版权声明:我的就是我的 https://blog.csdn.net/qq_41638851/article/details/89166291 #include<bits/stdc++.h>
using namespace std;
int main() {
int n;
while(cin>>n,n!=0&&n>=1&&n<=1000) {
int t=0;
int a[1000],b[1000];
for(int i=0; i<n; i++)
cin>>a[i];
1115: 数字统计
版权声明:我的就是我的 https://blog.csdn.net/qq_41638851/article/details/89192505 #include<bits/stdc++.h>
using namespace std;
int main() {
int a[100]={0};
int n;
cin>>n;
for(int i=1;i<=n;i++){
int t=i;
while(t!=0){
a[t%10]++;
t=t/10;
}
}
for
1177: 计算N!(高精度)
版权声明:我的就是我的 https://blog.csdn.net/qq_41638851/article/details/89192473 #include<bits/stdc++.h>
using namespace std;
int main() {
int n;
while(cin>>n){
int a[10000];
a[0]=1;
int temp=0;
int s=0; //temp为当下阶乘结果为几位
for(int i=1;i<=n;i+
2186: C语言-报数
版权声明:我的就是我的 https://blog.csdn.net/qq_41638851/article/details/89207253 这道题题眼主要在n人围成一圈,循环报数,1,2,3, 用数组下标来表示第几个人。 数组数据来表示是否退出圈子 #include<bits/stdc++.h>
using namespace std;
int main() {
int k;
int i;
int num=0,sum=0;
bool key=true;
cin>>k;
int a
ACM-ICPC基本算法思想
版权声明:我的就是我的 https://blog.csdn.net/qq_41638851/article/details/89214948 正在更新中 求值法 递推法 递归法 枚举法 模拟法 将自然的过程或者语言直白的程序化,比如题目中的求解过程,我们直接程序化模拟求解。即根据实际问题建立模型,模拟实际玩法从而解决问题。 (1)随机模拟 #include<bits/stdc++.h>
using namespace std;
int main(){
int n;
int i,s;
lo
ACM常用的STL用法
版权声明:我的就是我的 https://blog.csdn.net/qq_41638851/article/details/89279848 1. 枚举按字典序最小排列开始,不停调用“求下一个排列 ”的方法,STL中提供了一个next_permutation. next_permutation(p, p+n)
#include<bits/stdc++.h>
using namespace std;
int main() {
int n, p[10];
scanf("%d", &n);
2190: C语言-平均分
版权声明:我的就是我的 https://blog.csdn.net/qq_41638851/article/details/89280982 #include<bits/stdc++.h>
using namespace std;
typedef struct{
char number[5];
char name[10];
int a,b,c;
}Student;
int main() {
int n;
int max=0;
int s1,s2,s3;
s1=s2=s3=0;
问题 B: 英雄联盟阵营
版权声明:我的就是我的 https://blog.csdn.net/qq_41638851/article/details/89283297 #include<bits/stdc++.h>
using namespace std;
int bin[1002]; //分组标识数组
int findx(int x){ //找到其“根结点”
int r=x;
while(bin[r]!=r)
r=bin[r];
return r;
}
void merge(int x,i
今日推荐
周排行