💗💗💗欢迎来到我的博客,你将找到有关如何使用技术解决问题的文章,也会找到某个技术的学习路线。无论你是何种职业,我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章,也欢迎在文章下方留下你的评论和反馈。我期待着与你分享知识、互相学习和建立一个积极的社区。谢谢你的光临,让我们一起踏上这个知识之旅!
文章目录
- 🍀机器学习是什么
- 🍀AIGC又是什么
- 🍀经典的机器学习算法
- 🍀线性回归(Linear Regression)
- 🍀逻辑回归(Logistic Regression)
- 🍀支持向量机(SVM, Support Vector Machine)
- 🍀决策树(Decision Tree)
- 🍀随机森林(Random Forest)
- 🍀机器学习算法的分类
- 🍀机器学习算法的术语
🍀机器学习是什么
机器学习是人工智能的一个子领域,专注于让计算机通过数据和经验自我学习和改进。与传统编程不同,在机器学习中,程序不是通过明确的指令来解决问题,而是通过分析数据来找出模式和规律,从而做出预测或决策。
🍀AIGC又是什么
AIGC(Artificial Intelligence Generated Content)指的是由人工智能生成的内容。随着人工智能技术的不断发展,AIGC正在改变内容创作的方式,使得生成高质量文本、图像、音频和视频变得更加高效和可行。
感兴趣的小伙伴可以阅读下面一篇知网的文章,帮助你更好地去了解AIGC的发展及前景~
🍀经典的机器学习算法
一些经典的机器学习算法包括:
🍀线性回归(Linear Regression)
用于预测连续值,基于线性关系。
示例代码:
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
# 生成数据
np.random.seed(0)
X = 2 * np.random.rand(100, 1)
y = 4 + 3 * X + np.random.randn(100, 1)
# 拟合线性回归模型
model = LinearRegression()
model.fit(X, y)
X_new = np.array([[0], [2]])
y_predict = model.predict(X_new)
# 绘图
plt.scatter(X, y)
plt.plot(X_new, y_predict, color='red', linewidth=2)
plt.title("Linear Regression")
plt.xlabel("X")
plt.ylabel("y")
plt.grid()
plt.show()
运行实例
🍀逻辑回归(Logistic Regression)
用于二分类问题,通过逻辑函数来估计事件发生的概率。
示例代码:
from sklearn.linear_model import LogisticRegression
# 生成数据
X = np.random.rand(100, 1) * 10
y = (X > 5).astype(int).ravel()
# 拟合逻辑回归模型
model = LogisticRegression()
model.fit(X, y)
# 绘图
X_test = np.linspace(0, 10, 100).reshape(-1, 1)
y_prob = model.predict_proba(X_test)[:, 1]
plt.scatter(X, y, color='blue')
plt.plot(X_test, y_prob, color='red')
plt.title("Logistic Regression")
plt.xlabel("X")
plt.ylabel("Probability")
plt.grid()
plt.show()
运行实例:
🍀支持向量机(SVM, Support Vector Machine)
寻找最佳超平面,将不同类别的数据点分隔开。
示例代码:
from sklearn import datasets
from sklearn.svm import SVC
# 生成数据
X, y = datasets.make_blobs(n_samples=100, centers=2, random_state=6)
model = SVC(kernel='linear')
model.fit(X, y)
# 绘图
plt.scatter(X[:, 0], X[:, 1], c=y, s=30)
ax = plt.gca()
xlim = ax.get_xlim()
ylim = ax.get_ylim()
# 创建网格以绘制决策边界
xx = np.linspace(xlim[0], xlim[1], 50)
yy = np.linspace(ylim[0], ylim[1], 50)
YY, XX = np.meshgrid(yy, xx)
xy = np.vstack([XX.ravel(), YY.ravel()]).T
Z = model.decision_function(xy).reshape(XX.shape)
plt.contour(XX, YY, Z, colors='k', levels=[0], alpha=0.5, linestyles='--')
plt.title("Support Vector Machine")
plt.xlabel("Feature 1")
plt.ylabel("Feature 2")
plt.grid()
plt.show()
运行实例:
🍀决策树(Decision Tree)
通过树形结构进行决策,简单易懂,适用于分类和回归任务。
示例代码:
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
# 加载数据集
data = load_iris()
X, y = data.data, data.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建决策树模型
dt = DecisionTreeClassifier()
dt.fit(X_train, y_train)
# 预测
y_pred_dt = dt.predict(X_test)
# 评估
accuracy_dt = accuracy_score(y_test, y_pred_dt)
print(f"决策树准确率: {accuracy_dt}")
运行实例:
决策树准确率: 1.0
🍀随机森林(Random Forest)
集成多个决策树以提高预测准确性和控制过拟合。
示例代码:
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# 加载数据集
data = load_iris()
X, y = data.data, data.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建随机森林模型
rf = RandomForestClassifier()
rf.fit(X_train, y_train)
# 预测
y_pred_rf = rf.predict(X_test)
# 评估
accuracy_rf = accuracy_score(y_test, y_pred_rf)
print(f"随机森林准确率: {accuracy_rf}")
运行实例:
随机森林准确率: 1.0
🍀机器学习算法的分类
机器学习算法通常根据其学习方式进行分类:
监督学习(Supervised Learning):使用带标签的数据进行训练,目标是学习输入与输出之间的映射关系。常见算法包括线性回归、逻辑回归、决策树等。
无监督学习(Unsupervised Learning):使用未标记的数据进行训练,目的是发现数据的潜在结构或模式。常见算法包括K-means聚类、主成分分析(PCA)等。
半监督学习(Semi-Supervised Learning):结合少量标记数据和大量未标记数据进行训练,适用于标记成本高的场景。
强化学习(Reinforcement Learning):通过与环境的交互进行学习,最大化累积奖励。常用于游戏、机器人控制等领域。
单单看上面这些文绉绉的话术难免摸不着头脑,下面我将带领你通过一些小故事来更好的了解他们
- 监督学习
想象你是一名老师,你有一堆学生的考试卷子(带标签的数据),每份卷子都有分数(输出)。你发现了一种方法,能根据学生的学习时间(输入)来预测他们的分数。于是,你通过分析这些数据,训练出一个模型。下次考试时,你可以根据学生的学习时间快速预测他们的分数。
- 无监督学习
现在假设你是一个侦探,面对一堆没有任何标签的证据(未标记的数据)。你需要找出这些证据之间的关系。你开始将相似的证据分在一起,比如将所有关于同一个嫌疑人的证据放在一个文件夹里。通过这个过程,你发现了潜在的模式,帮助你理清案件的脉络。
- 半监督学习
想象你正在组织一场派对。你手头有一些受邀者的名单(少量标记数据),但是大多数人没有回复(大量未标记数据)。为了确保派对成功,你决定根据已经回复的人(标记数据)和没有回复的人(未标记数据)来推测其他人可能的意向。通过这种方式,你能更好地计划食物和饮料的数量。
- 强化学习
想象你是一只小猴子,在一个果树上寻找香蕉(奖励)。每次你爬到树上(与环境互动),如果找到香蕉,你会感到高兴(得到奖励)。如果你走错方向,没有找到香蕉,你就会记住这个教训。通过不断尝试和改进,小猴子逐渐学会了最快的路线来获取更多的香蕉。
🍀机器学习算法的术语
在机器学习中,有一些常见的术语需要了解:
- 特征(Feature):用于描述数据的属性或变量,特征选择是构建模型的重要步骤。
- 标签(Label):在监督学习中,标签是模型要预测的目标变量。
- 训练集(Training Set):用于训练模型的数据集。
- 测试集(Test Set):用于评估模型性能的数据集。
- 过拟合(Overfitting):模型在训练数据上表现良好,但在新数据上表现不佳的情况。
- 欠拟合(Underfitting):模型在训练数据上表现不佳,无法捕捉数据的内在模式。
- 模型评估(Model Evaluation):使用指标(如准确率、F1-score等)来评估模型的性能。
等等…在接下来的学习中可能我们会遇到更多的术语,例如:P、R、F等等之类的
挑战与创造都是很痛苦的,但是很充实。