Python生成两组线性均匀分布的数据(完全线性可分)。 生成两组线性均匀分布的数据(线性不可分)。 生成两组高斯分布的数据(完全线性可分)。 生成两组高斯分布的数据(线性不可分)使用 K-means聚类程序进行二分类。
时间: 2024-03-02 16:50:19 浏览: 19
好的,我来逐一回答你提出的问题。
1. Python生成两组线性均匀分布的数据(完全线性可分):
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成线性可分的数据
mean1 = [0, 0]
mean2 = [2, 2]
cov = [[1, 0], [0, 1]]
x1, y1 = np.random.multivariate_normal(mean1, cov, 100).T
x2, y2 = np.random.multivariate_normal(mean2, cov, 100).T
plt.scatter(x1, y1, c='r')
plt.scatter(x2, y2, c='b')
plt.show()
```
2. Python生成两组线性均匀分布的数据(线性不可分):
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成线性不可分的数据
mean1 = [0, 0]
mean2 = [2, 2]
cov = [[1, 0.8], [0.8, 1]]
x1, y1 = np.random.multivariate_normal(mean1, cov, 100).T
x2, y2 = np.random.multivariate_normal(mean2, cov, 100).T
plt.scatter(x1, y1, c='r')
plt.scatter(x2, y2, c='b')
plt.show()
```
3. Python生成两组高斯分布的数据(完全线性可分):
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成高斯分布的数据
mean1 = [0, 0]
mean2 = [2, 2]
cov = [[1, 0], [0, 1]]
x1, y1 = np.random.multivariate_normal(mean1, cov, 100).T
x2, y2 = np.random.multivariate_normal(mean2, cov, 100).T
plt.scatter(x1, y1, c='r')
plt.scatter(x2, y2, c='b')
plt.show()
```
4. Python生成两组高斯分布的数据(线性不可分):
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成高斯分布的数据
mean1 = [0, 0]
mean2 = [2, 2]
cov = [[1, 0.8], [0.8, 1]]
x1, y1 = np.random.multivariate_normal(mean1, cov, 100).T
x2, y2 = np.random.multivariate_normal(mean2, cov, 100).T
plt.scatter(x1, y1, c='r')
plt.scatter(x2, y2, c='b')
plt.show()
```
5. 使用K-means聚类程序进行二分类:
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
# 生成高斯分布的数据
mean1 = [0, 0]
mean2 = [2, 2]
cov = [[1, 0.8], [0.8, 1]]
x1, y1 = np.random.multivariate_normal(mean1, cov, 100).T
x2, y2 = np.random.multivariate_normal(mean2, cov, 100).T
# 合并数据
X = np.concatenate((np.array([x1, y1]).T, np.array([x2, y2]).T))
# 进行二分类
kmeans = KMeans(n_clusters=2, random_state=0).fit(X)
labels = kmeans.labels_
# 绘制结果
plt.scatter(X[:, 0], X[:, 1], c=labels)
plt.show()
```
希望这些代码能够帮助到你解决问题!