第一周 AI 学习总结:从理论到实战

318 阅读5分钟

第一周 AI 学习总结:从理论到实战

引言

作为一名拥有近7年开发经验的程序员,我曾在美团工作4年,目前在字节跳动已经快3年。在应用开发领域,我已经积累了丰富的经验,但近年来逐渐感受到职业发展的瓶颈。与此同时,我所在的部门也在积极探索 AI 相关项目,这让我意识到,人工智能不仅是行业的未来趋势,也是我个人职业发展的新方向。

为了突破瓶颈、提升竞争力,我决定主动学习人工智能相关知识。第一周的学习主要集中在机器学习的基础知识和实战应用上。通过吴恩达的机器学习课程和 Kaggle 的实战项目,我对监督学习、无监督学习、线性回归、决策树等核心概念有了初步的理解,并通过房价预测项目体验了机器学习的完整流程。以下是我的学习总结和心得体会。


一、学习资料与思路

1. 学习资料

  • 文字资料: Kaggle 网站上的入门教程。
  • 视频资料: B 站上的《吴恩达机器学习》课程。

2. 学习思路

  • 理论结合实战: 通过吴恩达的课程学习机器学习的基础理论,结合 Kaggle 的实战项目巩固知识。
  • 从简单到复杂: 从线性回归、决策树等基础模型入手,逐步深入理解机器学习的核心概念。

二、核心知识总结

1. 机器学习基础

  • 机器学习是什么?

    • 机器学习是人工智能的一个子领域,核心思想是通过数据训练模型,让计算机从数据中学习,而不是通过明确的编程规则。
    • 根据数据是否有标签,机器学习可以分为:
      • 监督学习: 从带标签的数据中学习,用于预测新数据的输出。
      • 无监督学习: 从无标签的数据中学习,用于发现数据的潜在结构。
  • 监督学习 vs 无监督学习

    方面监督学习无监督学习
    数据要求需要标注数据(输入和输出)不需要标注数据
    目标预测新数据的输出发现数据中的结构或模式
    典型任务回归、分类聚类、降维
    示例房价预测、垃圾邮件分类客户分群、图像压缩

2. 监督学习:线性回归

  • 线性回归模型:

    • 用于预测连续值,目标是找到一条直线,使得预测值与真实值之间的误差最小。
    • 关键词:
      • 模型: ( y = wx + b )
      • 损失函数: 均方误差(MSE),用于衡量预测值与真实值之间的误差。
      • 目标: 通过梯度下降算法找到损失函数的最小值。
  • 梯度下降算法:

    • 通过迭代更新模型参数(( w ) 和 ( b )),逐步减小损失函数的值。
    • 学习率:
      • 学习率过小:训练速度慢。
      • 学习率过大:可能导致无法收敛。

3. 无监督学习:聚类

  • 聚类:
    • 将数据分为不同的组,使得同一组内的数据相似,不同组之间的数据差异较大。
    • 常用算法: K-Means、层次聚类。

4. 机器学习流程

  • 1. 加载数据: 使用 Pandas 读取 CSV 文件。
  • 2. 选择模型: 根据任务选择合适的模型(如决策树、随机森林)。
  • 3. 训练模型: 将训练数据传递给模型进行训练。
  • 4. 预测结果: 使用测试数据进行预测。
  • 5. 评估模型: 使用评估指标(如 MAE、MSE)衡量模型性能。

三、实战项目:房价预测

1. 项目概述

  • 目标: 预测墨尔本房价。
  • 数据集: Kaggle 提供的 Melbourne Housing 数据集。
  • 工具: Pandas、Scikit-learn。

2. 核心代码

# 导入库
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeRegressor
from sklearn.metrics import mean_absolute_error

# 读取数据
melbourne_file_path = "../data_set/melb_data.csv"
melbourne_data = pd.read_csv(melbourne_file_path)

# 选择特征和目标变量
melbourne_features = ['Rooms', 'Bathroom', 'Landsize', 'Lattitude', 'Longtitude']
X = melbourne_data[melbourne_features]
y = melbourne_data.Price

# 划分训练集和测试集
train_X, val_X, train_y, val_y = train_test_split(X, y, random_state=0)

# 训练决策树模型
melbourne_model = DecisionTreeRegressor(random_state=1)
melbourne_model.fit(train_X, train_y)

# 预测并评估模型
val_predictions = melbourne_model.predict(val_X)
val_mae = mean_absolute_error(val_y, val_predictions)
print(f"Mean Absolute Error: {val_mae}")

四、学习心得

  1. 理论与实践结合:  通过吴恩达的课程学习理论,再通过 Kaggle 的实战项目巩固知识,这种学习方式非常高效。
  2. 从简单到复杂:  从线性回归、决策树等基础模型入手,逐步深入理解机器学习的核心概念。
  3. 工具的重要性:  Pandas 和 Scikit-learn 是机器学习中非常强大的工具,熟练掌握它们可以大大提高开发效率。

五、下一步计划

  1. 深入学习:  继续学习吴恩达的课程,了解逻辑回归、支持向量机等算法。
  2. 更多实战:  尝试 Kaggle 上的其他项目,如图像分类、自然语言处理。
  3. 分享与交流:  将学习笔记和项目经验分享到博客或社区,与更多人交流。

结语

第一周的 AI 学习让我对机器学习有了初步的了解,也让我意识到这是一个充满挑战和机遇的领域。希望通过持续的学习和实践,我能够在这个领域取得更大的进步。如果你也对 AI 感兴趣,欢迎一起交流学习!