找回密码
 立即注册
搜索
热搜: 活动 交友
查看: 6|回复: 0

监督学习与无监督学习

[复制链接]
发表于 2025-4-14 21:07:41 | 显示全部楼层 |阅读模式
下面是关于监督学习与无监督学习的一些基本概念、算法和如何使用Scikit-learn库实施这些算法的学习笔记。

监督学习监督学习是一种机器学习类型,它通过已标记的数据集训练模型,以便在看到新的输入数据时进行预测。以下是几种常见的监督学习算法:
1. 线性回归 (Linear Regression)
  • 概述:线性回归是一种用于预测连续值(回归问题)的基本算法,它假设目标变量与输入特征之间存在线性关系。
  • 模型公式:( y = \beta_0 + \beta_1x_1 + \beta_2x_2 + ... + \beta_nx_n + \epsilon )。
使用Scikit-learn训练和测试:
  1. import numpy as np
  2. import pandas as pd
  3. from sklearn.model_selection import train_test_split
  4. from sklearn.linear_model import LinearRegression

  5. # 示例数据
  6. data = pd.DataFrame({
  7.     'X': [1, 2, 3, 4, 5],
  8.     'y': [2, 3, 5, 7, 11]
  9. })

  10. # 划分数据集
  11. X = data[['X']]
  12. y = data['y']
  13. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

  14. # 训练模型
  15. model = LinearRegression()
  16. model.fit(X_train, y_train)

  17. # 测试模型并预测
  18. predictions = model.predict(X_test)
复制代码

2. 逻辑回归 (Logistic Regression)
  • 概述:逻辑回归用于二分类问题,它根据输入特征预测类的概率,输出值在0到1之间。
  • 模型公式:( P(Y=1|X) = \frac{1}{1 + e^{-(\beta_0 + \beta_1x_1 + ... + \beta_nx_n)}} )。
使用Scikit-learn训练和测试:
  1. from sklearn.linear_model import LogisticRegression

  2. # 示例数据
  3. data = pd.DataFrame({
  4.     'Feature1': [5, 10, 15, 20],
  5.     'Feature2': [1, 0, 1, 0],
  6.     'Label': [0, 0, 1, 1]
  7. })

  8. # 划分数据集
  9. X = data[['Feature1', 'Feature2']]
  10. y = data['Label']
  11. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

  12. # 训练模型
  13. model = LogisticRegression()
  14. model.fit(X_train, y_train)

  15. # 测试模型并预测
  16. predictions = model.predict(X_test)
复制代码

3. 支持向量机 (Support Vector Machine, SVM)
  • 概述:SVM是一种用于分类问题的强大算法,通过寻找最佳的超平面将不同类别的数据分隔开。
  • 应用场景:可以用于线性和非线性分类。
使用Scikit-learn训练和测试:
  1. from sklearn.svm import SVC

  2. # 示例数据
  3. data = pd.DataFrame({
  4.     'Feature1': [1, 2, 3, 1, 2, 3],
  5.     'Feature2': [1, 1, 1, 2, 2, 2],
  6.     'Label': [0, 0, 0, 1, 1, 1]
  7. })

  8. # 划分数据集
  9. X = data[['Feature1', 'Feature2']]
  10. y = data['Label']
  11. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

  12. # 训练模型
  13. model = SVC()
  14. model.fit(X_train, y_train)

  15. # 测试模型并预测
  16. predictions = model.predict(X_test)
复制代码

4. 决策树 (Decision Tree)
  • 概述:决策树是一种基于树形结构的分类或回归算法,通过一系列的判断条件对数据进行分类。
  • 优点:易于理解和解释,能够处理缺失值。
使用Scikit-learn训练和测试:
  1. from sklearn.tree import DecisionTreeClassifier

  2. # 示例数据
  3. data = pd.DataFrame({
  4.     'Feature1': [5, 7, 8, 7, 6],
  5.     'Feature2': [100, 200, 150, 150,
复制代码


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|星星学习网

GMT+8, 2025-4-22 08:28 , Processed in 0.111587 second(s), 14 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表