Python 入门机器学习

Python 是机器学习中最常用的编程语言之一,因其易于学习、强大的库支持和社区生态系统。

接下来,我将逐步说明如何通过 Python 入门机器学习,并介绍需要的一些常用库。

安装 Python 和必要的库

首先,确保你已经安装了 Python,你可以访问Python 官方网站 Welcome to Python.org 下载和安装最新版本。

如果你还不熟悉 Python,可以先学习我们的 Python 教程

常用机器学习库:

pip install numpy pandas matplotlib seaborn scikit-learn

如果你打算使用深度学习框架,安装如下:

pip install torch  # 或者
pip install tensorflow

相关课程:

    在使用 Python 进行机器学习时,整个过程一般遵循以下步骤:

    1. 导入必要的库 - 例如,NumPy、Pandas 和 Scikit-learn。

    2. 加载和准备数据 - 数据是机器学习的核心。你需要加载数据并进行必要的预处理(例如数据清洗、缺失值填补等)。

    3. 选择模型和算法 - 根据任务选择适合的机器学习算法(如线性回归、决策树等)。

    4. 训练模型 - 使用训练集数据来训练模型。

    5. 评估模型 - 使用测试集评估模型的准确性,并根据评估结果优化模型。

    6. 调整模型和超参数 - 根据评估结果调整模型的超参数,进一步优化模型性能。


    一个简单的机器学习例子:使用 Scikit-learn 做分类

    Scikit-learn(简称 Sklearn)是一个开源的机器学习库,建立在 NumPy、SciPy 和 matplotlib 这些科学计算库之上,提供了简单高效的数据挖掘和数据分析工具。

    Scikit-learn 包含了许多常见的机器学习算法,包括:

    • 线性回归、岭回归、Lasso回归
    • 支持向量机(SVM)
    • 决策树、随机森林、梯度提升树
    • 聚类算法(如K-Means、层次聚类、DBSCAN)
    • 降维技术(如PCA、t-SNE)
    • 神经网络

    接下来我们通过一个简单的分类任务——使用鸢尾花数据集(Iris Dataset)来演示机器学习的流程,鸢尾花数据集是一个经典的数据集,包含 150 个样本,描述了三种不同类型的鸢尾花的花瓣和萼片的长度和宽度。

    步骤 1:导入库

    导入需要的 Python 库:

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    from sklearn.datasets import load_iris
    from sklearn.model_selection import train_test_split
    from sklearn.preprocessing import StandardScaler
    from sklearn.neighbors import KNeighborsClassifier
    from sklearn.metrics import accuracy_score

    步骤 2:加载数据

    加载鸢尾花数据集:

    实例

    # 加载鸢尾花数据集
    iris = load_iris()

    # 将数据转化为 pandas DataFrame
    X = pd.DataFrame(iris.data, columns=iris.feature_names)  # 特征数据
    y = pd.Series(iris.target)  # 标签数据

    # 显示前五行数据
    print(X.head())

    打印输出数据如下所示:

       sepal length (cm)  sepal width (cm)  petal length (cm)  petal width (cm)
    0                5.1               3.5                1.4               0.2
    1                4.9               3.0                1.4               0.2
    2                4.7               3.2                1.3               0.2
    3                4.6               3.1                1.5               0.2
    4                5.0               3.6                1.4               0.2

    步骤 3:数据集划分

    将数据集划分为训练集和测试集,通常使用 70% 训练集和 30% 测试集的比例:

    实例

    # 划分训练集和测试集(80% 训练集,20% 测试集)
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

    步骤 4:特征缩放(标准化)

    许多机器学习算法都依赖于特征的尺度,特别是像 K 最近邻算法。为了确保每个特征的均值为 0,标准差为 1,我们使用标准化来处理数据:

    实例

    # 标准化特征
    scaler = StandardScaler()
    X_train = scaler.fit_transform(X_train)
    X_test = scaler.transform(X_test)

    步骤 5:选择模型并训练

    在这个例子中,我们选择 K-Nearest Neighbors(KNN) 算法来进行分类:

    实例

    # 创建 KNN 分类器
    knn = KNeighborsClassifier(n_neighbors=3)

    # 训练模型
    knn.fit(X_train, y_train)

    步骤 6:评估模型

    训练完成后,我们使用测试集评估模型的准确性:

    实例

    # 预测测试集
    y_pred = knn.predict(X_test)

    # 计算准确率
    accuracy = accuracy_score(y_test, y_pred)
    print(f'模型准确率: {accuracy:.2f}')

    完成以上代码,输出结果为:

    模型准确率: 1.00

    步骤 7:可视化结果(可选)

    你可以通过可视化来进一步了解模型的表现,尤其是在多维数据集的情况下。例如,你可以用二维图来显示 KNN 分类的结果(不过在这里需要对数据进行降维,简化为二维)。

    实例

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    from sklearn.datasets import load_iris
    from sklearn.model_selection import train_test_split
    from sklearn.preprocessing import StandardScaler
    from sklearn.neighbors import KNeighborsClassifier
    from sklearn.metrics import accuracy_score

    # 加载鸢尾花数据集
    iris = load_iris()

    # 将数据转化为 pandas DataFrame
    X = pd.DataFrame(iris.data, columns=iris.feature_names)  # 特征数据
    y = pd.Series(iris.target)  # 标签数据

    # 划分训练集和测试集(80% 训练集,20% 测试集)
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

    # 标准化特征
    scaler = StandardScaler()
    X_train = scaler.fit_transform(X_train)
    X_test = scaler.transform(X_test)

    # 创建 KNN 分类器
    knn = KNeighborsClassifier(n_neighbors=3)

    # 训练模型
    knn.fit(X_train, y_train)

    # 预测测试集
    y_pred = knn.predict(X_test)

    # 计算准确率
    accuracy = accuracy_score(y_test, y_pred)

    # 可视化 - 这里只是一个简单示例,具体可根据实际情况选择绘图方式
    plt.scatter(X_test[:, 0], X_test[:, 1], c=y_pred, cmap='viridis', marker='o')
    plt.title("KNN Classification Results")
    plt.xlabel("Feature 1")
    plt.ylabel("Feature 2")
    plt.show()

    输出图片如下所示:

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值