生成两组线性均匀分布的数据(完全线性可分), 两组线性均匀分布的数据(线性不可分), 两组高斯分布的数据(完全线性可分), 两组高斯分布的数据(线性不可分),并使用 K-means聚类程序进行二分类。python
时间: 2024-01-24 07:03:05 浏览: 91
好的,这是关于生成数据和使用K-means聚类进行二分类的完整代码:
生成两组线性均匀分布的数据(完全线性可分):
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成随机数据
np.random.seed(0)
X = np.random.uniform(-1, 1, size=(100, 2))
y = np.ones(100)
y[:50] = -1
# 绘制数据
plt.scatter(X[:, 0], X[:, 1], c=y)
plt.show()
# 使用K-means聚类进行二分类
from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=2, random_state=0).fit(X)
y_pred = kmeans.labels_
# 绘制分类结果
plt.scatter(X[:, 0], X[:, 1], c=y_pred)
plt.show()
```
生成两组线性均匀分布的数据(线性不可分):
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成随机数据
np.random.seed(0)
X1 = np.random.uniform(-1, 0, size=(50, 2))
X2 = np.random.uniform(0, 1, size=(50, 2))
X = np.concatenate([X1, X2], axis=0)
y = np.ones(100)
y[:50] = -1
# 绘制数据
plt.scatter(X[:, 0], X[:, 1], c=y)
plt.show()
# 使用K-means聚类进行二分类
from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=2, random_state=0).fit(X)
y_pred = kmeans.labels_
# 绘制分类结果
plt.scatter(X[:, 0], X[:, 1], c=y_pred)
plt.show()
```
生成两组高斯分布的数据(完全线性可分):
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成随机数据
np.random.seed(0)
X1 = np.random.normal(loc=[2, 2], scale=0.5, size=(50, 2))
X2 = np.random.normal(loc=[-2, -2], scale=0.5, size=(50, 2))
X = np.concatenate([X1, X2], axis=0)
y = np.ones(100)
y[:50] = -1
# 绘制数据
plt.scatter(X[:, 0], X[:, 1], c=y)
plt.show()
# 使用K-means聚类进行二分类
from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=2, random_state=0).fit(X)
y_pred = kmeans.labels_
# 绘制分类结果
plt.scatter(X[:, 0], X[:, 1], c=y_pred)
plt.show()
```
生成两组高斯分布的数据(线性不可分):
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成随机数据
np.random.seed(0)
X1 = np.random.normal(loc=[2, 2], scale=0.5, size=(50, 2))
X2 = np.random.normal(loc=[-2, -2], scale=0.5, size=(50, 2))
X3 = np.random.normal(loc=[-2, 2], scale=0.5, size=(50, 2))
X4 = np.random.normal(loc=[2, -2], scale=0.5, size=(50, 2))
X = np.concatenate([X1, X2, X3, X4], axis=0)
y = np.zeros(200)
y[:100] = 1
# 绘制数据
plt.scatter(X[:, 0], X[:, 1], c=y)
plt.show()
# 使用K-means聚类进行二分类
from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=2, random_state=0).fit(X)
y_pred = kmeans.labels_
# 绘制分类结果
plt.scatter(X[:, 0], X[:, 1], c=y_pred)
plt.show()
```
希望能帮助到你。
阅读全文