通义灵码2.0实现数据分析小项目

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
简介: 本文介绍了使用通义灵码2.0实现一个数据分析小项目的全过程。从数据清洗、特征分布可视化到构建和评估多个机器学习模型,详细展示了每一步的操作和结果。通过简单的描述和提问,通义灵码2.0能够自动生成并优化代码,极大地简化了开发流程。最终,项目成功完成了数据的分析和预测模型的构建,验证了通义灵码2.0的强大功能和易用性。

通义灵码2.0实现数据分析小项目


通过某些特征挖掘相关性,构建模型之类的是大学机器学习和python课程常见的题目,今天尝试使用通义灵码2.0实现

图文投稿地址:小红书http://xhslink.com/a/D4BFYLIjaQa6

首先傻瓜式提问怎么开始

image.png

这个答案和普通通用大模型不相上下了


接下来拆分需求,逐步开始


提需求,先做数据清洗

image.png


# 设置matplotlib字体以支持中文
plt.rcParams['font.sans-serif'] = ['SimHei']  # 使用黑体
plt.rcParams['axes.unicode_minus'] = False    # 正常显示负号

# 自动检测文件编码并读取CSV文件
with open('基础数据.csv', 'rb') as f:
    result = chardet.detect(f.read())
df = pd.read_csv('基础数据.csv', encoding=result['encoding'])

# 打印读取后的数据
print("原始数据:")
print(df)

# 处理缺失值:删除包含缺失值的行
df.dropna(inplace=True)

# 删除第一和第二列(假设是序号和性别)
df = df.drop(df.columns[[0, 1]], axis=1)

# 处理异常值:使用IQR方法
Q1 = df[['身高', '体重']].quantile(0.25)
Q3 = df[['身高', '体重']].quantile(0.75)
IQR = Q3 - Q1
df = df[~((df[['身高', '体重']] < (Q1 - 1.5 * IQR)) | (df[['身高', '体重']] > (Q3 + 1.5 * IQR))).any(axis=1)]

# 删除含有负数的行
df = df[(df > 0).all(axis=1)]

# 打印去除的异常数据的数量
print(f"\n去除的异常数据数量: {len(df) - len(df.dropna())}")

# 计算BMI
df['BMI'] = df['体重'] / ((df['身高'] / 100) ** 2)

# 打印处理后的数据
print("\n处理后的数据:")
print(df)

image.png

画出对应特征的分布直方图

image.png

# 绘制每个特征的分布直方图
num_features = len(df.columns)
fig, axes = plt.subplots(nrows=3, ncols=3, figsize=(15, 10))  # 固定大小为15x15
colors = plt.cm.tab10.colors
axes = axes.flatten()

for ax, column, color in zip(axes, df.columns, colors):
    ax.hist(df[column], bins=20, edgecolor='k', alpha=0.7, color=color)
    ax.set_title(f'分布直方图 - {column}')
    ax.set_xlabel(column)
    ax.set_ylabel('频数')
    ax.grid(True)

plt.tight_layout()
plt.show()

image.png


绘制热力图


image.png


# 绘制热力图
plt.figure(figsize=(10, 8))
sns.heatmap(pd.DataFrame(X_train, columns=X.columns).corr(), annot=True, cmap='coolwarm', fmt=".2f")
plt.title('特征相关性热力图')
plt.show()


image.png


构建多个模型


image.png



# 定义模型
models = {
    '线性回归': LinearRegression(),
    '岭回归': Ridge(),
    '决策树': DecisionTreeRegressor(random_state=42),
    '随机森林': RandomForestRegressor(random_state=42),
    '梯度提升': GradientBoostingRegressor(random_state=42),
    '支持向量机': SVR(),
    'K近邻': KNeighborsRegressor()
}

# 训练和评估模型
results = {}
for name, model in models.items():
    model.fit(X_train, y_train)
    y_pred = model.predict(X_test)
    mse = mean_squared_error(y_test, y_pred)
    r2 = r2_score(y_test, y_pred)
    results[name] = {'MSE': mse, 'R2': r2}

# 交叉验证评估
for name, model in models.items():
    scores = cross_val_score(model, X_train, y_train, cv=5, scoring='neg_mean_squared_error')
    print(f"{name} 交叉验证MSE: {-scores.mean()}")

# 绘制模型结果对比图表
model_names = list(results.keys())
mse_values = [results[name]['MSE'] for name in model_names]
r2_values = [results[name]['R2'] for name in model_names]

fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(15, 6))
axes[0].bar(model_names, mse_values, color='skyblue')
axes[0].set_title('模型均方误差 (MSE)')
axes[0].set_xlabel('模型')
axes[0].set_ylabel('MSE')
axes[0].set_xticklabels(model_names, rotation=45, ha='right')

axes[1].bar(model_names, r2_values, color='salmon')
axes[1].set_title('模型决定系数 (R2)')
axes[1].set_xlabel('模型')
axes[1].set_ylabel('R2')
axes[1].set_xticklabels(model_names, rotation=45, ha='right')

plt.tight_layout()
plt.show()

image.png

image.png

绘制真实值 vs 预测值的散点图

image.png

# 绘制真实值 vs 预测值的散点图
plt.figure(figsize=(10, 8))

# 遍历每个模型,绘制真实值 vs 预测值的散点图
for name, model in models.items():
    y_pred = model.predict(X_test)  # 获取预测值
    plt.scatter(y_test, y_pred, alpha=0.5, label=name)  # 绘制散点图

# 绘制对角线(理想情况下的预测线)
plt.plot([y_test.min(), y_test.max()], [y_test.min(), y_test.max()],
         color='red', linestyle='--', linewidth=2, label='理想预测线')

# 设置图表标题和标签
plt.title('真实值 vs 预测值', fontsize=16)
plt.xlabel('真实值', fontsize=14)
plt.ylabel('预测值', fontsize=14)

# 添加图例
plt.legend(loc='upper left', fontsize=12)

# 显示网格线
plt.grid(True, linestyle='--', alpha=0.6)

# 自动调整布局
plt.tight_layout()

# 显示图表
plt.show()


image.png


构建预测模型


image.png



image.png



这结果也大致合理,基本上这样就完成了一个非常简单的数据分析,不得不说2.0确实好用,它可以直接帮你改代码,而不用手动的复制粘贴,报错也基本上直接丢个他就能帮你改好。基本上人人都可以是需求,想要什么描述一下,他就能帮你实现


























相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
25天前
|
人工智能 IDE Java
沉浸式演示:在新老项目中如何快速上手通义灵码 AI 程序员
沉浸式演示:在新老项目中如何快速上手通义灵码 AI 程序员
|
4月前
|
NoSQL 安全 测试技术
Redis游戏积分排行榜项目中通义灵码的应用实战
Redis游戏积分排行榜项目中通义灵码的应用实战
128 4
|
23天前
|
运维 Serverless 测试技术
通义灵码 x 函数计算:构建高效开发流程,加速项目交付
通义灵码 x 函数计算:构建高效开发流程,加速项目交付
53 10
|
3月前
|
人工智能 监控 算法
3D-Speaker:阿里通义开源的多模态说话人识别项目,支持说话人识别、语种识别、多模态识别、说话人重叠检测和日志记录
3D-Speaker是阿里巴巴通义实验室推出的多模态说话人识别开源项目,结合声学、语义和视觉信息,提供高精度的说话人识别和语种识别功能。项目包含工业级模型、训练和推理代码,以及大规模多设备、多距离、多方言的数据集,适用于多种应用场景。
683 18
3D-Speaker:阿里通义开源的多模态说话人识别项目,支持说话人识别、语种识别、多模态识别、说话人重叠检测和日志记录
|
3月前
|
运维 Serverless 测试技术
通义灵码 x 函数计算:构建高效开发流程,加速项目交付
本方案基于通义大模型的通义灵码,提供代码生成、补全、优化及单元测试生成等能力,提升编码效率和质量。结合云效和函数计算 FC 进行代码管理、持续集成、部署发布,加速项目交付,为开发者提供智能编码、CI/CD、部署上线体验,加快产品迭代速度。
|
4月前
|
存储 数据可视化 数据挖掘
Python数据分析项目:抖音短视频达人粉丝增长趋势
Python数据分析项目:抖音短视频达人粉丝增长趋势
|
4月前
|
存储 缓存 运维
通义灵码在Mongo多副本集群优化项目中使用分享
通义灵码在Mongo多副本集群优化项目中使用分享
69 3
|
5月前
|
自然语言处理 JavaScript 开发者
跟随通义灵码一步步升级vue2(ts)项目到vue3版本
本文介绍了如何将基于 TypeScript 的 Vue 2 项目升级到 Vue 3。主要内容包括:依赖升级、配置文件调整、组件代码迁移、状态管理迁移以及优化策略迁移。文章提供了详细的步骤和示例代码,帮助开发者顺利完成升级。特别推荐使用通义灵码工具来加速组件和状态的转写过程。
347 7
|
5月前
|
前端开发 JavaScript 数据库
VSCode编程助手工程能力体验报告(一):通义灵码 - 帮你高效切入新项目、编码和提升质量
我是一位软件工程师,用通义灵码个人版vscode插件的workspace做项目分析和复盘,对比之前没有灵码,现在提效了80%,本文介绍了具体的使用流程。
1089 2
|
4月前
|
传感器 Rust 物联网
通义灵码在物联网项目中的实战应用
通义灵码在物联网项目中的实战应用
118 0