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

本文涉及的产品
云原生网关 MSE Higress,422元/月
MSE Nacos/ZooKeeper 企业版试用,1600元额度,限量50份
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 本文介绍了使用通义灵码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确实好用,它可以直接帮你改代码,而不用手动的复制粘贴,报错也基本上直接丢个他就能帮你改好。基本上人人都可以是需求,想要什么描述一下,他就能帮你实现


























相关文章
|
2月前
|
人工智能 数据挖掘 数据库
通义灵码产品演示: 数据库设计与数据分析
本演示展示如何使用通义灵码进行数据库设计与数据分析。通过SQLite构建电商订单表,利用AI生成表结构、插入样本数据,并完成多维度数据分析及可视化图表展示,体现AI在数据库操作中的高效能力。
299 7
|
9月前
|
人工智能 IDE Java
沉浸式演示:在新老项目中如何快速上手通义灵码 AI 程序员
沉浸式演示:在新老项目中如何快速上手通义灵码 AI 程序员
|
NoSQL 安全 测试技术
Redis游戏积分排行榜项目中通义灵码的应用实战
Redis游戏积分排行榜项目中通义灵码的应用实战
266 4
|
缓存 数据可视化 安全
我是一位软件开发者,用通义灵码个人版快速上手新项目
作为一名软件开发者,我近期体验了通义灵码个人版的@workspace和@terminal功能,用于快速上手新电商项目的代码,并实现了商品详情页的展示优化。通过这些工具,我不仅将熟悉项目的时间缩短了约50%,还提升了代码质量,减少了错误,使开发过程更加高效和规范。
281 5
Nyx
|
Java
通义灵码提升项目效率
本文介绍了作者作为Java后端开发工程师使用通义灵码进行项目开发的体验。通过安装插件、初步体验(了解项目结构、项目优化、异常排查、代码生成)和使用@terminal注解,作者感受到了显著的开发效率提升。文中还分享了作者的心得体会,强调了快速熟悉项目代码和整体架构的重要性。
Nyx
314 4
|
机器学习/深度学习 数据采集 数据可视化
Python 数据分析:从零开始构建你的数据科学项目
【10月更文挑战第9天】Python 数据分析:从零开始构建你的数据科学项目
249 2
|
人工智能 自然语言处理 程序员
用通义灵码@workspace和@terminal做项目代码熟悉和新需求实现的体验
来和大家分享一下,我用通义灵码@workspace和@terminal做项目代码熟悉和新需求实现的体验。
635 2
|
8月前
|
运维 Serverless 测试技术
通义灵码 x 函数计算:构建高效开发流程,加速项目交付
通义灵码 x 函数计算:构建高效开发流程,加速项目交付
144 10
|
11月前
|
运维 Serverless 测试技术
通义灵码 x 函数计算:构建高效开发流程,加速项目交付
本方案基于通义大模型的通义灵码,提供代码生成、补全、优化及单元测试生成等能力,提升编码效率和质量。结合云效和函数计算 FC 进行代码管理、持续集成、部署发布,加速项目交付,为开发者提供智能编码、CI/CD、部署上线体验,加快产品迭代速度。
|
存储 缓存 运维
通义灵码在Mongo多副本集群优化项目中使用分享
通义灵码在Mongo多副本集群优化项目中使用分享
176 3

热门文章

最新文章