当前位置:   article > 正文

初识机器学习

初识机器学习
通过学习《【机器学习】引领未来的力量:技术革新与应用探索》初识机器学习
原文链接:
【机器学习】引领未来的力量:技术革新与应用探索-CSDN博客


  1. import pandas as pd
  2. import numpy as np
  3. from sklearn.model_selection import train_test_split
  4. from sklearn.linear_model import LinearRegression
  5. from sklearn.metrics import mean_squared_error, r2_score
# 1. 数据收集
# 假设有一个销售数据集,包括销售额和其他相关特征
# 这里用随机生成数据来模拟一个简单的例
  1. np.random.seed(0)
  2. X = np.random.rand(100, 1)
  3. y = 2.5 + 1.2 * X + np.random.rand(100, 1)

  1. 这段代码是用Python和NumPy库实现的,用于生成一组随机数据。其目的是创建一个100x1维的输入数据矩阵X和100x1维的输出数据矩阵y,它们的值是通过线性模型生成的,同时添加了随机噪声。
  2. 实现原理:
  3. 首先,我们导入了NumPy库,并设置了随机数种子。这使得在后续的随机数生成中,相同的种子将产生相同的随机数,以便于实验的可重复性。
  4. 接下来,我们创建了一个100x1维的输入数据矩阵X。其中,每个X[i, 0]的值是通过均匀分布随机生成的,其范围在01之间。
  5. 然后,我们创建了一个100x1维的输出数据矩阵y。其值是通过线性模型生成的,即y[i, 0] = 2.5 + 1.2 * X[i, 0] + 随机噪声。这里,随机噪声是通过对每个y[i, 0]加上一个随机数来生成的,其范围在01之间。
  6. 用途: 这段代码可以用于各种机器学习算法中,例如线性回归、神经网络等。它可以帮助我们生成一组具有线性关系的人工生成的数据,以便在后续的模型训练和测试中使用。
  7. 注意事项:
  8. 由于这里使用了随机数生成,因此可能需要多次运行代码以获得稳定的结果。在实际应用中,我们可以考虑将随机数种子设置为一个稳定的值,以提高代码的可重复性。
  9. 为了便于后续的分析,我们将输出数据矩阵y的每一行视为一个单独的观测。在实际问题中,可能需要将输出数据转换为更合适的数据结构,例如分类问题中的类别标签。
  10. 代码中没有提供预测函数(如线性回归的权重参数)。在实际应用中,我们需要根据训练得到的权重参数来预测新的输入值。
# 2. 数据预处理
# 这里不需要进行特别的数据预处理,因为是用随机生成数据来演示


# 3. 模型选择和训练
# 将数据集划分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
  1. 这段代码是用于从数据集X和标签集y中分离出训练集和测试集的Python代码。
  2. 实现原理:
  3. 使用train_test_split函数根据指定的test_size参数将数据集X和标签集y分离成训练集和测试集。test_size参数表示测试集的大小,默认值为0.2,表示随机将20%的数据分配给测试集。
  4. 使用random_state参数设置随机数生成器的种子,以保证每次运行train_test_split时生成的数据集分配是一致的。
  5. 用途:
  6. 在机器学习或深度学习训练过程中,通常需要将数据集分为训练集和测试集,用于模型训练和评估。
  7. 在实际应用中,还可以根据需要多次划分训练集和测试集,以获得更全面的评估结果。
  8. 注意事项:
  9. 代码中的X和y分别表示数据集和标签集。在实际应用中,X可能包含特征矩阵、图像数据等,y表示数据或图像的类别标签。
  10. 为了确保数据的独立性,通常需要在分离数据集时设置random_state参数。在实际应用中,可以根据需要选择不同的随机数生成器种子。
  11. 划分数据集时,需要确保数据集中的特征和标签是独立的。例如,如果X是一个包含特征123的矩阵,y是一个包含类别标签的数组,那么在分离数据集时,需要确保特征矩阵和标签数组不混合。
# 创建一个线性回归模型
model = LinearRegression()
  1. 这段代码是使用Python的Scikit-learn库创建了一个线性回归模型。 linear_model.LinearRegression() 是一个类,它表示线性回归模型。当你调用这个类时,它返回一个LinearRegression对象的实例。这个模型将用于预测输入数据和目标变量的关系。
  2. 注意:在调用这个类时,不要忘记导入线性回归模型类
# 进行模型训练

model.fit(X_train, y_train)
  1. 这段代码是用于训练一个模型(model)的Python代码。这个模型通常是一个用于分类或回归问题的机器学习模型,比如支持向量机(SVM)、随机森林(Random Forest)或者深度学习模型(e.g., ResNet、Inception等)。
  2. 这段代码的具体含义是使用传入的训练数据(X_train)和训练标签(y_train)来训练模型,以便在未来的预测中使用。在训练过程中,模型会自动调整 internal parameters,以提高预测的准确性。
  3. 实现原理:根据传入的训练数据和标签,模型会自动调整 internal parameters,以提高预测的准确性。这些 internal parameters 可能包括权重、偏置、神经元连接等。通过这些 internal parameters,模型可以对新的输入数据进行预测。
  4. 用途:在机器学习领域,训练模型是非常重要的一步。没有经过训练的模型是不成熟的,无法进行有效的预测。因此,训练模型是实现机器学习算法的重要步骤。
  5. 注意事项:
  6. 确保输入的数据(X_train)和标签(y_train)是正确的。
  7. 检查模型是否已经正确初始化。
  8. 确保训练过程已经正确实现。
  9. 如果需要,可以调整模型参数,以获得更好的预测结果。
# 4. 模型评估
# 使用测试集对模型进行评估

y_pred = model.predict(X_test)
  1. 这段代码是使用已训练好的模型(model)对测试集(X_test)进行预测,并将预测结果存储在变量y_pred中。
  2. 实现原理:model.predict()方法会自动将测试集的输入数据(X_test)传递给模型,模型会根据训练时使用的算法和参数进行预测,并将预测结果返回给调用者。
  3. 用途:在机器学习或深度学习训练模型后,通常需要使用测试集进行评估和预测,这段代码就是实现这个功能的重要部分。
  4. 注意事项:
  5. 确保X_test是经过预处理和特征工程后的数据,与训练集使用的数据处理方法一致。
  6. 如果测试集中包含标签(即真实答案),建议将测试集分为两部分:X_test和y_test,然后在测试集中使用model.evaluate()方法来评估模型性能。
  7. 在实际应用中,可能需要对预测结果进行后处理或转换,以适应最终系统的需求。
# 计算均方误差和R平方作为评估指标

  1. mse = mean_squared_error(y_test, y_pred)
  2. r2 = r2_score(y_test, y_pred)
这两行代码是用于计算模型性能的常用代码。它们分别计算了均方误差(Mean Squared ErrorMSE)和R²分数(R² Score)。这两个指标可以用来评估模型预测的能力。
  1. print(f"均方误差(MSE): {mse}")
  2. print(f"R平方(R-squared): {r2}")

完整代码

  1. import pandas as pd
  2. import numpy as np
  3. from sklearn.model_selection import train_test_split
  4. from sklearn.linear_model import LinearRegression
  5. from sklearn.metrics import mean_squared_error, r2_score
  6. # 1. 数据收集
  7. # 假设有一个销售数据集,包括销售额和其他相关特征
  8. # 这里用随机生成数据来模拟一个简单的例子
  9. np.random.seed(0)
  10. X = np.random.rand(100, 1)
  11. y = 2.5 + 1.2 * X + np.random.rand(100, 1)
  12. # 2. 数据预处理
  13. # 这里不需要进行特别的数据预处理,因为是用随机生成数据来演示
  14. # 3. 模型选择和训练
  15. # 将数据集划分为训练集和测试集
  16. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
  17. # 创建一个线性回归模型
  18. model = LinearRegression()
  19. # 进行模型训练
  20. model.fit(X_train, y_train)
  21. # 4. 模型评估
  22. # 使用测试集对模型进行评估
  23. y_pred = model.predict(X_test)
  24. # 计算均方误差和R平方作为评估指标
  25. mse = mean_squared_error(y_test, y_pred)
  26. r2 = r2_score(y_test, y_pred)
  27. print(f"均方误差(MSE): {mse}")
  28. print(f"R平方(R-squared): {r2}")

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/608729
推荐阅读
相关标签
  

闽ICP备14008679号