1. 正态分布(高斯分布)
假设对于一组数据 $$ x{\in}R $$,如果它们满足正态分布,且平均数为 $$ \mu $$,方差为 $$ \sigma^2 $$,则记作:
$$ x \sim N(\mu,\sigma^2) $$
继续阅读 »
1. 模型选择
对于一组数据集,可能会选择不同的模型。例如:
$$
\begin{array}{}
h_\theta(x)=\theta_0+\theta_1x \
h_\theta(x)=\theta_0+\theta_1x+\theta_2x^2 \
h_\theta(x)=\theta_0+\theta_1x+...+\theta_3x^3 \
h_\theta(x)=\theta_0+\theta_1x+...+\theta_{10}x^{10} \
\end{array}
$$
继续阅读 »
1. K-Means
K-Means 是一种聚类算法,属于无监督学习。其算法非常简单。
输入是:
聚类数 $$ K $$
样本 $$ x^{(1)},x^{(2)},...,x^{(m)} $$
算法过程:
随机初始化 $$ K $$ 个聚类的中心点 $$ \mu_1,\mu_2,...,\mu_K $$
重复如下过程:
对于每个样本,选择离该样本最近的聚类中心点 $$ \mu_k $$,将该样本标记为第 $$ k $$ 类
对于每个聚类,更新该聚类的中心点 $$ \mu_k $$ 为所有该聚类的点的中心
继续阅读 »
1. 优化目标
SVM 即支持向量机(Support Vector Machines),是一种大间距分类算法。
回顾在逻辑回归中,一个样本的损失函数为:
$$ Cost(h_\theta(x),y)=-ylog(h_\theta(x))-(1-y)log(1-h_\theta(x)) $$
继续阅读 »
1. Neural Network
$$ a_i^{(j)}$$:第 $$j$$ 层的第 $$i$$ 个单元
$$ \Theta^{(j)} $$:第 $$j$$ 层到第 $$j+1$$ 层映射的权重矩阵
继续阅读 »
1. 过拟合
在线性回归和逻辑回归中,容易出现过拟合的情况,即训练模型可以很好地适用于训练集,得到代价函数 $$ J(\theta)≈0 $$,但是这样的模型并无法泛化,对于测试数据,会偏差很大。
在样本特征数多,而样本数少的情况下,很容易发生过拟合。解决过拟合的方法:
继续阅读 »
1. Sigmoid
线性回归针对的是连续值,逻辑回归则是针对离散的分类问题。如图所示:
需要注意的是,虽然绘图是在二维平面内,但是数据其实是有三个维度:$$x_1$$,$$x_2$$ 和 $$y$$。假设:
继续阅读 »
1. 单一变量线性回归
假设:
$$ h_\theta(x)=\theta_0+\theta_1x $$
则 cost function 为:
$$ J(\theta_0,\theta_1)=\frac{1}{2m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2 $$
继续阅读 »
1. 基本的柱状图
```py
import matplotlib.pyplot as plt
data = [5, 20, 15, 25, 10]
plt.bar(range(len(data)), data)
plt.show()
```
plt.bar函数签名为:
py
bar(left, height, width=0.8, bottom=None, **kwargs)
事实上,left,height,width,bottom这四个参数确定了柱体的位置和大小。默认情况下,left为柱体的居中位置(可以通过align参数来改变left值的含义),即:
(left - width / 2, bottom)为左
继续阅读 »
1. line chart
```py
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2 * np.pi, 100)
y1, y2 = np.sin(x), np.cos(x)
plt.plot(x, y1)
plt.plot(x, y2)
plt.title('line chart')
plt.xlabel('x')
plt.ylabel('y')
plt.show()
```
2. 图例
在plot的时候指定label,然后调用legend方法可以绘制图例。例如:
```py
import numpy as np
i
继续阅读 »