diff --git a/.inscode b/.inscode index 42bb7bd87a1896b6d2a2a26c01ac611a8775c7b6..265f9634d538709969faf11d4afea85fccce4456 100644 --- a/.inscode +++ b/.inscode @@ -1,5 +1,6 @@ run = "pip install -r requirements.txt;python main.py" + [env] VIRTUAL_ENV = "/root/${PROJECT_DIR}/venv" PATH = "${VIRTUAL_ENV}/bin:${PATH}" diff --git a/a.ipynb b/a.ipynb deleted file mode 100644 index 653dc532bbedba2f624b3a2acaf4a90976d9751c..0000000000000000000000000000000000000000 --- a/a.ipynb +++ /dev/null @@ -1,99 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiIAAAGdCAYAAAAvwBgXAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB3e0lEQVR4nO3dd3xT1fvA8c+5N6PpZu+NIAgiW5woKCCiuLfiHrh/Xxw4ceHee4GiiBNQVBBRwI2iIMoSRPYe3c265/dH2kJpk87kpu3zfr36os09zXka2uTJGc9RWmuNEEIIIYQNDLsDEEIIIUTdJYmIEEIIIWwjiYgQQgghbCOJiBBCCCFsI4mIEEIIIWwjiYgQQgghbCOJiBBCCCFsI4mIEEIIIWzjsDuASCzLYtOmTaSkpKCUsjscIYQQQpSD1pqsrCyaN2+OYUQe84jrRGTTpk20atXK7jCEEEIIUQnr16+nZcuWEdvEdSKSkpIChH6Q1NRUm6MRQgghRHlkZmbSqlWrotfxSOI6ESmcjklNTZVERAghhKhhyrOsQharCiGEEMI2kogIIYQQwjaSiAghhBDCNnG9RqQ8tNYEAgGCwaDdoQhRaaZp4nA4ZJu6EKLOqdGJiM/nY/PmzeTm5todihBVlpiYSLNmzXC5XHaHIoQQMVNjExHLslizZg2madK8eXNcLpe8mxQ1ktYan8/H9u3bWbNmDQcccECZBYCEEKK2qLGJiM/nw7IsWrVqRWJiot3hCFElHo8Hp9PJ2rVr8fl8JCQk2B2SEELERI1/2yXvHEVtIb/LQoi6qMaOiAghRF2k/f9A4G/ACe4BKKO+3SEJUSXyFqyWa9u2LU8//XS1t63NBg4cyI033mh3GEIUowPrsHaeg945HJ1xCzrjJvS2I7Ay7kVrn93hCVFpkojYYNSoUSilUErhdDpp0qQJxx13HG+++SaWZVVrX7/++itXXHFFtbetrLlz5xb97EopPB4PBx10EK+++mpU+xWiJtPBbehdZ4N/0X5XApA3Bb3nJrTWdoQmRJVJImKToUOHsnnzZv777z++/PJLjjnmGG644QZOPPFEAoFAtfXTqFGjci/mrUjbqlqxYgWbN29m6dKlXHnllVx99dXMmTMnJn1HW2FtGyGqi86ZANZuoLR6SRZ4Z4P/j1iHJUS1kETEJm63m6ZNm9KiRQt69erF2LFjmT59Ol9++SUTJ04sardnzx4uu+wyGjVqRGpqKsceeyyLFy8udl+fffYZffv2JSEhgYYNG3LKKacUXdt3ukVrzb333kvr1q1xu900b96c66+/vtS2AOvWrePkk08mOTmZ1NRUzjzzTLZu3Vp0/d577+WQQw5h0qRJtG3blrS0NM4++2yysrLK/PkbN25M06ZNadeuHddffz3t2rXj999/L7ru9Xq5/vrrady4MQkJCRxxxBH8+uuvRdcnTpxIenp6sfucNm1asS3c5YkvJyeHCy+8kOTkZJo1a8YTTzxRItZJkybRp08fUlJSaNq0Keeeey7btm0rul44yvPll1/Su3dv3G4377zzDoZh8NtvvxW7r6effpo2bdpU+8iXqOXyPqL0JKSQic6bGqtohKhWtSoR0VqT6wvY8lEdw6LHHnssPXr04JNPPim67YwzzmDbtm18+eWXLFy4kF69ejFo0CB27doFwOeff84pp5zCCSecwB9//MGcOXPo169fqff/8ccf89RTT/HKK6/wzz//MG3aNLp3715qW8uyOPnkk9m1axfz5s1j9uzZ/Pvvv5x11lnF2q1evZpp06YxY8YMZsyYwbx583j44YfL/TNrrZk5cybr1q2jf//+RbffcsstfPzxx7z11lv8/vvvdOzYkSFDhhT93OVVVnxjxoxh3rx5TJ8+na+++oq5c+cWS4gA/H4/999/P4sXL2batGn8999/jBo1qkRft912Gw8//DDLli3jpJNOYvDgwUyYMKFYmwkTJjBq1CjZISPKTWsLdEYZrYJg7YhJPEJUt1q1aybPH6Tr3bNs6XvpfUNIdFX94TzwwAP5888/Afj+++9ZsGAB27Ztw+12A/D4448zbdo0PvroI6644goefPBBzj77bMaNG1d0Hz169Cj1vtetW0fTpk0ZPHgwTqeT1q1bh01a5syZw5IlS1izZg2tWrUC4O233+aggw7i119/pW/fvkAoYZk4cSIpKSkAXHDBBcyZM4cHH3ww4s/ZsmVLIDTyYVkW9913H0cddRQQGqV46aWXmDhxIsOGDQPgtddeY/bs2bzxxhuMGTOm7AeyQKT4srOzeeONN3jnnXcYNGgQAG+99VZRbIUuueSSos/bt2/Ps88+S9++fcnOziY5Obno2n333cdxxx1X9PVll13GVVddxZNPPonb7eb3339nyZIlTJ8+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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "\n", - "def sigmoid(z):\n", - " return 1 / (1 + np.exp(-z))\n", - "\n", - "def costFunction(theta, X, y):\n", - " m = len(y)\n", - " J = 0\n", - " grad = np.zeros(theta.shape)\n", - " \n", - " h = sigmoid(np.dot(X, theta))\n", - " J = (-1/m) * np.sum(y*np.log(h) + (1-y)*np.log(1-h))\n", - " grad = (1/m) * np.dot(X.T, (h-y))\n", - " \n", - " return J, grad\n", - "\n", - "def gradientDescent(X, y, theta, alpha, num_iters):\n", - " m = len(y)\n", - " J_history = np.zeros(num_iters)\n", - " \n", - " for i in range(num_iters):\n", - " J_history[i], grad = costFunction(theta, X, y)\n", - " theta = theta - alpha*grad\n", - " \n", - " return theta, J_history\n", - "\n", - "# 生成样本数据\n", - "np.random.seed(0)\n", - "X = np.random.randn(100, 2)\n", - "ones = np.ones((100, 1))\n", - "X = np.hstack((ones, X))\n", - "y = np.random.randint(0, 2, size=(100,1))\n", - "\n", - "# 初始化theta\n", - "initial_theta = np.zeros((X.shape[1], 1))\n", - "\n", - "# 梯度下降\n", - "alpha = 0.1\n", - "num_iters = 1000\n", - "theta, J_history = gradientDescent(X, y, initial_theta, alpha, num_iters)\n", - "\n", - "# 绘制决策边界\n", - "x1 = np.arange(-3, 3, 0.1)\n", - "x2 = -(theta[0]+theta[1]*x1)/theta[2]\n", - "plt.plot(x1, x2, label='Decision Boundary')\n", - "plt.scatter(X[:, 1], X[:, 2], c=y.flatten())\n", - "plt.legend()\n", - "plt.show()" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.16 (main, Dec 7 2022, 01:11:51) \n[GCC 9.4.0]" - }, - "orig_nbformat": 4, - "vscode": { - "interpreter": { - "hash": "e7370f93d1d0cde622a1f8e1c04877d8463912d04d973331ad4851f04de6915a" - } - } - }, - "nbformat": 4, - "nbformat_minor": 2 -}