machine learning basic

(本博客内容基于Kaggle教程,感谢:https://www.kaggle.com/learn/intro-to-machine-learning)

机器学习是啥?

简单说,就是让电脑从数据里学习,找到规律,然后用这些规律来做预测。

机器学习的几个步骤:

  • 定义模型: 就像搭积木,选择用什么样的积木(算法)来搭建。
  • 喂数据: 把数据给模型学习,让它找到数据里的规律。
  • 做预测: 学习完后,让模型用学到的规律来预测新事物。
  • 检验模型: 看看模型预测得准不准,好不好用。

Panda 介绍 (数据分析好帮手)

Panda是Python里超常用的数据分析工具,可以帮你整理和分析数据。

  1. 数据结构

    • DataFrame: 像Excel表格一样,有行有列。
    • Series: 像一列数据,DataFrame就是由很多Series组成的。
  2. 核心功能

    • 读取和写入数据(比如CSV、Excel文件)。
    • 清洗和处理数据(把乱七八糟的数据整理干净)。
    • 筛选和过滤数据(找到你想要的数据)。
    • 统计和计算数据(算平均值、总和等等)。
  3. 基本使用

    1
    2
    3
    4
    5
    6
    7
    8
    9
    import pandas as pd
    # 读取CSV文件
    data = pd.read_csv('file.csv')
    # 创建DataFrame
    df = pd.DataFrame(data)
    # 简单描述数据
    df.describe()
    # 显示头几行数据
    df.head()

Sklearn 介绍 (机器学习工具箱)

Sklearn是Python里最火的机器学习库,里面有很多现成的算法可以直接用。

  1. 核心功能

    • 分类算法(Classification): 比如判断邮件是不是垃圾邮件。
    • 回归算法(Regression): 比如预测房价。
    • 聚类算法(Clustering): 比如把用户分成不同的群体。
    • 降维算法(Dimensionality Reduction): 简化数据,去除不重要的信息。
    • 模型选择(Model Selection): 帮你找到最适合你的数据的算法。
  2. 主要优点

    • 用起来简单。
    • 文档写得很清楚。
    • 用的人多,有问题容易找到答案。
    • 能和NumPy、Pandas一起用,非常方便。
  3. 基本使用示例

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    from sklearn import datasets, model_selection
    from sklearn.linear.model import LinearRegression

    # 加载数据 (这里用的是波士顿房价数据)
    data = datasets.load_boston()
    # 划分训练集和测试集 (训练集用来训练模型,测试集用来检验模型)
    X_train, X_test, y_train, y_test = model_selection.train_test_split(data.data, data.target, random_state=1)
    # random_state 就像一个随机数种子,保证每次运行结果一样
    # 创建模型 (这里用的是线性回归模型)
    model = LinearRegression()
    # 训练模型 (让模型学习训练集里的数据)
    model.fit(X_train, y_train)
    # 预测 (用模型来预测测试集里的数据)
    prediction = model.predict(X_test)

模型检验 (看看模型靠不靠谱)

模型预测出来的值和真实值肯定有差距,这个差距就是误差。

  • MAE (Mean Absolute Error):平均绝对误差

    • 就是把每个预测值的误差取绝对值,然后算个平均数。
    • 为什么要取绝对值?因为误差有正有负,直接加起来可能会抵消掉。
  • MSE (Mean Squared Error):均方误差

    • 就是把每个预测值的误差取平方,然后算个平均数。
    • 取平方也能避免正负抵消的问题,而且还能放大误差。

过拟合 (Overfitting) 和 欠拟合 (Underfitting)

  • 过拟合: 模型在训练数据上表现很好,但在新的数据上表现很差。就像一个学生只会做他见过的题,考试的时候就傻眼了。

    • 原因: 模型学得太细了,把训练数据里的噪音也当成了规律。
    • 特点:
      • 方差高: 模型对数据的变化很敏感。
      • 泛化能力弱: 只能在特定数据上表现好。
      • 模型太复杂。
  • 欠拟合: 模型在训练数据上和新的数据上表现都不好。就像一个学生什么都没学懂,考试肯定不及格。

    • 原因: 模型学得太粗略了,没能抓住数据里的主要规律。
    • 特点:
      • 模型太简单。
      • 数据有问题。
      • 训练时间不够。

基础模型介绍

  • 决策树 (Decision Tree)

    • 像一个流程图,根据不同的条件来做判断。
    • 比如:如果房子有两个厕所,价格就高于18000;如果没有,就低于18000。
  • 随机森林 (Random Forest)

    • 有很多棵决策树,每棵树都用一部分数据和特征来训练。
    • 可以避免过拟合和欠拟合,提高模型的准确性。