用python使用 K-means聚类算法生成两组线性均匀分布的数据(完全线性可分)。 使用 K-means聚类算法生成两组线性均匀分布的数据(线性不可分)。 使用 K-means聚类算法生成两组高斯分布的数据(完全线性可分)。使用 K-means聚类算法 生成两组高斯分布的数据(线性不可分)。 使用 K-means聚类程序进行二分类。
时间: 2024-03-02 08:50:51 浏览: 29
好的,我会依次为你展示如何用 Python 实现这些问题。
1. 生成两组线性均匀分布的数据,完全线性可分:
```python
import numpy as np
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
# 生成数据
np.random.seed(0)
X1 = np.random.uniform(0, 10, size=(50, 2))
X2 = np.random.uniform(20, 30, size=(50, 2))
X = np.vstack((X1, X2))
# K-means 聚类
kmeans = KMeans(n_clusters=2)
y_kmeans = kmeans.fit_predict(X)
# 可视化结果
plt.scatter(X[:, 0], X[:, 1], c=y_kmeans, cmap='viridis')
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], marker='*', s=300, c='red')
plt.show()
```
2. 生成两组线性均匀分布的数据,线性不可分:
```python
import numpy as np
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
# 生成数据
np.random.seed(0)
X1 = np.random.uniform(0, 10, size=(50, 2))
X2 = np.random.uniform(10, 20, size=(50, 2))
X = np.vstack((X1, X2))
# K-means 聚类
kmeans = KMeans(n_clusters=2)
y_kmeans = kmeans.fit_predict(X)
# 可视化结果
plt.scatter(X[:, 0], X[:, 1], c=y_kmeans, cmap='viridis')
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], marker='*', s=300, c='red')
plt.show()
```
3. 生成两组高斯分布的数据,完全线性可分:
```python
import numpy as np
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
# 生成数据
np.random.seed(0)
X1 = np.random.normal(loc=0, scale=1, size=(50, 2))
X2 = np.random.normal(loc=5, scale=1, size=(50, 2))
X = np.vstack((X1, X2))
# K-means 聚类
kmeans = KMeans(n_clusters=2)
y_kmeans = kmeans.fit_predict(X)
# 可视化结果
plt.scatter(X[:, 0], X[:, 1], c=y_kmeans, cmap='viridis')
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], marker='*', s=300, c='red')
plt.show()
```
4. 生成两组高斯分布的数据,线性不可分:
```python
import numpy as np
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt
# 生成数据
np.random.seed(0)
X1 = np.random.normal(loc=0, scale=1, size=(50, 2))
X2 = np.random.normal(loc=2, scale=1, size=(50, 2))
X = np.vstack((X1, X2))
# K-means 聚类
kmeans = KMeans(n_clusters=2)
y_kmeans = kmeans.fit_predict(X)
# 可视化结果
plt.scatter(X[:, 0], X[:, 1], c=y_kmeans, cmap='viridis')
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], marker='*', s=300, c='red')
plt.show()
```
5. K-means 聚类程序进行二分类:
```python
import numpy as np
from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt
# 生成数据
X, y = make_blobs(n_samples=200, centers=2, random_state=0)
# K-means 聚类
kmeans = KMeans(n_clusters=2)
y_kmeans = kmeans.fit_predict(X)
# 可视化结果
plt.scatter(X[:, 0], X[:, 1], c=y_kmeans, cmap='viridis')
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], marker='*', s=300, c='red')
plt.show()
```
以上是简单示例,实际应用中,需要根据具体数据进行参数调整和结果分析。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![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)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)