streamlit鸢尾花数据kmeans聚类
时间: 2023-05-30 21:01:30 浏览: 123
以下是使用streamlit进行鸢尾花数据k-means聚类的示例代码:
```python
import streamlit as st
import numpy as np
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.cluster import KMeans
import plotly.express as px
# 加载数据集
iris = load_iris()
X = iris.data
y = iris.target
# 构建聚类模型
model = KMeans(n_clusters=3, random_state=0)
model.fit(X)
# 创建应用
st.title('鸢尾花数据K-Means聚类')
st.write('数据集包含150个观测值,每个观测值有4个特征(萼片长度,萼片宽度,花瓣长度,花瓣宽度)。')
# 显示原始数据
st.subheader('原始数据')
df = pd.DataFrame(data=X, columns=iris.feature_names)
df['target'] = y
st.write(df)
# 显示聚类结果
st.subheader('聚类结果')
clusters = model.predict(X)
df['cluster'] = clusters
st.write(df)
# 可视化聚类结果
fig = px.scatter_3d(df, x='sepal length (cm)', y='sepal width (cm)', z='petal length (cm)', color='cluster')
st.plotly_chart(fig)
```
可以在命令行中运行`streamlit run app.py`来启动应用程序。应用程序将显示数据集的原始数据和聚类结果,并使用3D散点图可视化聚类结果。用户可以使用滑块来调整聚类数量,以查看不同聚类数量下的聚类效果。
注意:此示例假定用户已经熟悉鸢尾花数据集和K-Means聚类算法。如果用户不熟悉这些概念,可以在应用程序中提供更多说明和参考资料。