小编use*_*334的帖子

如何使用Matlab的quadprog实现软边界SVM模型?

假设我们都给出了训练数据集{y?, x?},对i = 1, ..., n,其中y?既可以是-11并且x?例如可以是二维或三维点.

通常,当输入点可线性分离时,SVM模型可以如下定义

min 1/2*||w||²
w,b
Run Code Online (Sandbox Code Playgroud)

受限制(for i = 1, ..., n)

y?*(w*x? - b) >= 1
Run Code Online (Sandbox Code Playgroud)

这通常被称为硬边界 SVM模型,因此是一个约束最小化问题,其中未知数是wb.我们也可以1/2在函数中省略最小化,因为它只是一个常数.

现在,关于Matlab 状态的文档quadprog

x = quadprog(H, f, A, b)最小化1/2*x'*H*x + f'*x受限制A*x ? b.A是双打矩阵,是双打b的向量.

我们可以使用quadprog函数实现硬边缘SVM模型,以获得权重向量w,如下所示

  • H 成为一个单位矩阵.
  • f' 变成零点矩阵. …

matlab machine-learning svm quadprog

7
推荐指数
1
解决办法
1万
查看次数

使用朴素贝叶斯进行文本分类

我正在使用朴素贝叶斯进行文本分类机器学习问题.我把每个单词都作为一个功能.我已经能够实现它,并且我的准确性很高.

我可以使用单词元组作为特征吗?

例如,如果有两个类,政治和体育.政府这个词可能出现在他们两个人身上.然而,在政治上我可以有一个元组(政府,民主),而在课堂体育中我可以有一个元组(政府,运动员).因此,如果一篇新的文章出现在政治中,那么元组(政府,民主)的概率比元组(政府,运动员)更具概率.

我问这是因为这样做是因为我违反了Naive Bayes问题的独立性假设,因为我也在考虑将单个单词作为特征.

另外,我正在考虑为功能添加权重.例如,3元组功能的重量将小于4元组功能.

从理论上讲,这两种方法是否都没有改变Naive Bayes分类器的独立性假设?此外,我还没有开始我提到的方法,但这会提高准确性吗?我认为准确性可能不会提高,但获得相同精度所需的训练数据量会更少.

machine-learning document-classification naivebayes

3
推荐指数
1
解决办法
1805
查看次数

指向C中的直线特定距离

如何在直线上找到距离给定点特定距离的点.我用C编写这段代码,但我得不到正确的答案.难道你们有人指导我做错了什么.

我得到x1,y1,x2,y2值和剩下的距离很好.使用这些我可以找到斜率m和y截距也很好.现在,我需要在连接这两个点的直线上找到点,该点距点x1,y1 10个单位.我好像在这里出错了.这是我写的代码.

int x1 = node[n].currentCoordinates.xCoordinate;
int y1 = node[n].currentCoordinates.yCoordinate;
int x2 = node[n].destinationLocationCoordinates.xCoordinate;
int y2 = node[n].destinationLocationCoordinates.yCoordinate;

int distanceleft = (y2 - y1) * (y2 - y1) + (x2 - x1) * (x2 - x1);
distanceleft = sqrt(distanceleft);
printf("Distance left to cover is %d\n",distanceleft);
int m = (y2 - y1)/(x2 - x1); // slope.
int b = y1 - m * x1; //y-intercept


//find point on the line that is 10 units away from
//current coordinates on equation …
Run Code Online (Sandbox Code Playgroud)

c 2d euclidean-distance

0
推荐指数
1
解决办法
1450
查看次数

Interop中不退出Excel应用程序

我正在使用以下代码在ASP.net表单上动态写入excel文件,该表单可以将数据表保存为excel.

//Create Excel Object
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook workbook = excel.Workbooks.Open(target);
Microsoft.Office.Interop.Excel.Worksheet worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];

worksheet.Name = "Worksheet1";
excel.Visible = false;
//Generate Fields Name
foreach (DataColumn col in dataTable.Columns)
{
    colIndex++;
    excel.Cells[1, colIndex] = col.ColumnName;
}
object[,] objData = new object[rowNo, columnNo];
for (int row = 0; row < rowNo; row++)
{
    for (int col = 0; col < columnNo; col++)
    {
        objData[row, col] = dataTable.Rows[row][col];
    }
}
Microsoft.Office.Interop.Excel.Range range;
range = worksheet.Range[excel.Cells[2, 1], excel.Cells[rowNo + 1, columnNo]]; …
Run Code Online (Sandbox Code Playgroud)

c# asp.net excel impersonation excel-interop

0
推荐指数
1
解决办法
4712
查看次数