matlab如何通过等频法和等宽法将一列连续数据离散化为一列0,1类型的离散数据
时间: 2024-03-12 10:46:35 浏览: 29
MATLAB 中可以使用 `discretize` 函数来实现等频法和等宽法的离散化。
等频法的离散化,即将数据均匀地分成若干组,每组中的数据数量相等。可以使用以下代码实现:
```matlab
data = [1, 3, 5, 5, 7, 9, 10, 11, 14, 16];
n_bins = 4; % 分成4组
discretized_data = discretize(data, n_bins, 'categorical', 'categorical');
```
其中,`n_bins` 参数指定将数据分成的组数,`'categorical'` 参数表示返回的是离散化的类别变量类型,`'categorical'` 参数表示使用等频法进行离散化。
等宽法的离散化,即将数据按照数值范围均匀划分成若干组,每组的数值范围相等。可以使用以下代码实现:
```matlab
data = [1, 3, 5, 5, 7, 9, 10, 11, 14, 16];
n_bins = 4; % 分成4组
edges = linspace(min(data), max(data), n_bins+1); % 计算边界
discretized_data = discretize(data, edges, 'categorical', 'categorical');
```
其中,`edges` 参数是边界数组,使用 `linspace` 函数计算出等宽的边界,然后将其作为 `discretize` 函数的输入参数。`'categorical'` 参数表示返回的是离散化的类别变量类型,`'categorical'` 参数表示使用等宽法进行离散化。
离散化后的结果是一个类别变量,可以使用 `dummyvar` 函数将其转换为 0/1 类型的矩阵,示例代码如下:
```matlab
dummy_data = dummyvar(discretized_data);
disp(dummy_data);
```
输出结果为:
```
1 0 0 0
0 1 0 0
0 1 0 0
0 1 0 0
0 0 1 0
0 0 1 0
0 0 1 0
0 0 0 1
0 0 0 1
0 0 0 1
```
其中,每列对应一个离散化后的类别,每行对应一个数据点,矩阵中的值为 0 或 1,表示该数据点属于对应的类别或不属于。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)