int n_samples, n_features; n_samples = m_ldDatalen; if(m_bLastColumnisClassfication) { n_features = m_dFieldNum - 1; } else { n_features = m_dFieldNum; } n_features --; //特征数减1,最后一个为回归Y值 std::vector<std::vector<double>> X(n_samples, std::vector<double>(n_features)); std::vector<double> y(n_samples); for (int i = 0; i < n_samples; i++) { for (int j = 0; j < n_features; j++) { X[i][j] = g_fData[j*n_samples+i]; } y[i] = g_fData[n_features*n_samples+i]; } // 训练模型 //SGDRegression model(0.01, 1000, 1e-4); //model.fit(X, y); // 训练模型 ProbitRegression model(n_features); double learning_rate = 0.01; int num_iterations = 10000; model.fit(X, y, learning_rate, num_iterations);
时间: 2024-03-29 15:40:52 浏览: 68
BobBuilder_app
这段代码看起来像是在对数据进行预处理和训练机器学习模型,可以看出数据的特征数和样本数分别由变量n_features和n_samples表示。然后通过双重循环,将原始数据中的特征值和回归Y值分别存入二维向量X和一维向量y中。
接下来,代码创建一个ProbitRegression类的对象model,并用fit()函数对数据进行训练。这里采用的是梯度下降的方式进行训练,其中学习率和训练次数在fit()函数中分别设置为learning_rate和num_iterations。
阅读全文