台大机器学习技法

介绍

机器学习是人工智能领域中的核心技术之一,它通过从数据中学习并构建模型,使计算机能够自动进行决策和预测。台大机器学习技法是一门重要的课程,涵盖了机器学习的基本概念和常用方法。本文将简要介绍台大机器学习技法课程的内容,并展示一些代码示例,帮助读者更好地理解和应用这些技术。

线性回归

代码示例

下面是一个使用线性回归模型拟合数据的代码示例:

import numpy as np
import matplotlib.pyplot as plt

# 生成示例数据
np.random.seed(0)
X = np.random.rand(100, 1)
y = 2 + 3 * X + np.random.randn(100, 1)

# 添加偏置项
X_b = np.c_[np.ones((100, 1)), X]

# 使用正规方程求解
theta_best = np.linalg.inv(X_b.T.dot(X_b)).dot(X_b.T).dot(y)

# 绘制数据和拟合曲线
plt.scatter(X, y)
plt.plot(X, X_b.dot(theta_best), 'r-')
plt.xlabel('x')
plt.ylabel('y')
plt.show()

上述代码通过线性回归模型拟合了一个带有噪声的线性数据。首先,使用np.random.rand()生成了100个位于0到1之间的随机数作为输入特征X,然后根据线性关系生成了对应的输出标签y,并添加了高斯噪声。接下来,通过添加偏置项构造了增广矩阵X_b,并使用正规方程求解得到最佳的参数theta_best。最后,使用plt.scatter()plt.plot()函数绘制了数据散点图和拟合的直线。

逻辑回归

代码示例

下面是一个使用逻辑回归模型进行二分类的代码示例:

import numpy as np
import matplotlib.pyplot as plt

# 生成示例数据
np.random.seed(0)
X = np.random.rand(100, 2)
y = np.logical_xor(X[:, 0] > 0.5, X[:, 1] > 0.5)

# 使用逻辑回归模型拟合数据
from sklearn.linear_model import LogisticRegression

log_reg = LogisticRegression()
log_reg.fit(X, y)

# 绘制数据和决策边界
plt.scatter(X[:, 0], X[:, 1], c=y, cmap='bwr')
x1 = np.linspace(0, 1, 100)
x2 = np.linspace(0, 1, 100)
X1, X2 = np.meshgrid(x1, x2)
X_new = np.c_[X1.ravel(), X2.ravel()]
y_proba = log_reg.predict_proba(X_new)[:, 1]
y_pred = log_reg.predict(X_new)
plt.contourf(X1, X2, y_pred.reshape(X1.shape), alpha=0.3, cmap='bwr')
plt.colorbar()
plt.xlabel('x1')
plt.ylabel('x2')
plt.show()

上述代码使用逻辑回归模型对一个异或分布的二分类问题进行建模和预测。首先,使用np.random.rand()生成了100个位于0到1之间的随机样本作为输入特征X,并通过异或逻辑生成了对应的输出标签y。然后,使用LogisticRegression()函数初始化了一个逻辑回归模型log_reg,并通过fit()方法对数据进行拟合。最后,使用plt.scatter()plt.contourf()函数绘制了数据散点图和决策边界。

支持向量机

代码示例

下面是一个使用支持向量机进行二分类的代码示例:

import numpy as np
import matplotlib.pyplot as plt

# 生成示例数据
np.random.seed(0)
X = np.random.randn(100, 2)
y = np.logical_xor(X[:, 0] > 0, X[:, 1] > 0)

# 使用支持向量机模型拟合数据
from sklearn