|
@@ -114,7 +114,7 @@ |
|
|
"cell_type": "markdown", |
|
|
"cell_type": "markdown", |
|
|
"metadata": {}, |
|
|
"metadata": {}, |
|
|
"source": [ |
|
|
"source": [ |
|
|
"逻辑回归本质上是线性回归,只是在特征到结果的映射中加入了一层函数映射,即先把特征线性求和,然后使用函数$g(z)$将最为假设函数来预测。$g(z)$可以将连续值映射到0到1之间。线性回归模型的表达式带入$g(z)$,就得到逻辑回归的表达式:\n", |
|
|
|
|
|
|
|
|
"逻辑回归本质上是线性回归,只是在特征到结果的映射中加入了一层函数映射,即先把特征线性求和,然后使用函数$g(z)$将做为假设函数来预测。$g(z)$可以将连续值映射到0到1之间。线性回归模型的表达式带入$g(z)$,就得到逻辑回归的表达式:\n", |
|
|
"\n", |
|
|
"\n", |
|
|
"$$\n", |
|
|
"$$\n", |
|
|
"h_\\theta(x) = g(\\theta^T x) = \\frac{1}{1+e^{-\\theta^T x}}\n", |
|
|
"h_\\theta(x) = g(\\theta^T x) = \\frac{1}{1+e^{-\\theta^T x}}\n", |
|
@@ -262,6 +262,7 @@ |
|
|
" pred_func (callable): 预测函数\n", |
|
|
" pred_func (callable): 预测函数\n", |
|
|
" data (numpy.ndarray): 训练数据集合\n", |
|
|
" data (numpy.ndarray): 训练数据集合\n", |
|
|
" label (numpy.ndarray): 训练数据标签\n", |
|
|
" label (numpy.ndarray): 训练数据标签\n", |
|
|
|
|
|
" 散开数据,但是不在原来的数据上做修改\n", |
|
|
" \"\"\"\n", |
|
|
" \"\"\"\n", |
|
|
" x_min, x_max = data[:, 0].min() - .5, data[:, 0].max() + .5\n", |
|
|
" x_min, x_max = data[:, 0].min() - .5, data[:, 0].max() + .5\n", |
|
|
" y_min, y_max = data[:, 1].min() - .5, data[:, 1].max() + .5\n", |
|
|
" y_min, y_max = data[:, 1].min() - .5, data[:, 1].max() + .5\n", |
|
@@ -272,7 +273,7 @@ |
|
|
" Z = predict_func(np.c_[xx.ravel(), yy.ravel()])\n", |
|
|
" Z = predict_func(np.c_[xx.ravel(), yy.ravel()])\n", |
|
|
" Z = Z.reshape(xx.shape)\n", |
|
|
" Z = Z.reshape(xx.shape)\n", |
|
|
"\n", |
|
|
"\n", |
|
|
" plt.contourf(xx, yy, Z, cmap=plt.cm.Spectral)\n", |
|
|
|
|
|
|
|
|
" plt.contourf(xx, yy, Z, cmap=plt.cm.Spectral) #画出登高线并填充\n", |
|
|
" plt.scatter(data[:, 0], data[:, 1], c=label, cmap=plt.cm.Spectral)\n", |
|
|
" plt.scatter(data[:, 0], data[:, 1], c=label, cmap=plt.cm.Spectral)\n", |
|
|
" plt.show()\n", |
|
|
" plt.show()\n", |
|
|
"\n" |
|
|
"\n" |
|
@@ -350,7 +351,7 @@ |
|
|
"cell_type": "markdown", |
|
|
"cell_type": "markdown", |
|
|
"metadata": {}, |
|
|
"metadata": {}, |
|
|
"source": [ |
|
|
"source": [ |
|
|
"## 2. 如何使用sklearn求解逻辑回归" |
|
|
|
|
|
|
|
|
"## 2.如何用sklearn解决逻辑回归问题?" |
|
|
] |
|
|
] |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
@@ -478,7 +479,7 @@ |
|
|
"\n", |
|
|
"\n", |
|
|
"针对机器学习的问题,一个比较好的方法是通过降维的方法将原始的高维特征降到2-3维并可视化处理,通过这样的方法可以对所要处理的数据有一个初步的认识。这里介绍最简单的降维方法主成分分析(Principal Component Analysis, PCA).\n", |
|
|
"针对机器学习的问题,一个比较好的方法是通过降维的方法将原始的高维特征降到2-3维并可视化处理,通过这样的方法可以对所要处理的数据有一个初步的认识。这里介绍最简单的降维方法主成分分析(Principal Component Analysis, PCA).\n", |
|
|
"\n", |
|
|
"\n", |
|
|
"PCA寻求具有最大方差的特征的正交线性组合,因此可以更好地了解数据的结构。在这里,我们将使用Randomized PCA,因为当数据个数$N$比较大是,计算的效率更好。\n" |
|
|
|
|
|
|
|
|
"PCA寻求具有最大方差的特征的正交线性组合,因此可以更好地了解数据的结构。在这里,我们将使用Randomized PCA,因为当数据个数$N$比较大时,计算的效率更好。\n" |
|
|
] |
|
|
] |
|
|
}, |
|
|
}, |
|
|
{ |
|
|
{ |
|
|