逻辑回归预测 MATLAB
时间: 2023-10-03 20:05:55 浏览: 127
在 MATLAB 中,可以使用 `fitglm` 函数来进行逻辑回归预测。下面是一个简单的示例:
假设我们有一个数据集,其中包含两个变量 `x` 和 `y`,以及一个二元变量 `label`,表示一个样本是否属于某个类别。我们可以使用逻辑回归来预测一个新的样本是否属于该类别。
首先,我们需要加载数据集:
```
data = readtable('data.csv');
```
其中 `data.csv` 是包含数据的 CSV 文件。接下来,我们可以将数据集拆分为训练集和测试集:
```
cv = cvpartition(size(data,1),'HoldOut',0.3);
idx = cv.test;
dataTrain = data(~idx,:);
dataTest = data(idx,:);
```
这里我们将数据集按照 7:3 的比例分成训练集和测试集,其中 `cvpartition` 函数用于创建交叉验证对象,`HoldOut` 表示留出法,`size(data,1)` 表示数据集中的样本数。
接下来,我们可以使用 `fitglm` 函数来训练逻辑回归模型:
```
model = fitglm(dataTrain,'label ~ x + y','Distribution','binomial');
```
这里我们将 `x` 和 `y` 作为输入变量,`label` 作为输出变量,`Distribution` 值为 `binomial` 表示使用二项式分布。
训练完成后,我们可以使用 `predict` 函数来对测试集进行预测:
```
pred = predict(model,dataTest);
```
最后,我们可以使用 `confusionmat` 函数来计算预测结果的混淆矩阵:
```
C = confusionmat(dataTest.label,pred>0.5);
```
这里 `dataTest.label` 表示测试集中的真实标签,`pred>0.5` 表示预测结果的二元值。
完整代码示例:
```
data = readtable('data.csv');
cv = cvpartition(size(data,1),'HoldOut',0.3);
idx = cv.test;
dataTrain = data(~idx,:);
dataTest = data(idx,:);
model = fitglm(dataTrain,'label ~ x + y','Distribution','binomial');
pred = predict(model,dataTest);
C = confusionmat(dataTest.label,pred>0.5);
```
阅读全文