{ "cells": [ { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "# 10折交叉验证处理数据\n", "import numpy as np # 导入numpy包\n", "import pandas as pd # 导入pandas包\n", "from sklearn.model_selection import KFold # 从sklearn导入KFold包\n", "# from sklearn.model_selection import RepeatedKFold\n", "# rkf = RepeatedKFold(n_splits=10, n_repeats=10) #10次10折交叉验证\n", "def Ten_Flod_spilt(fold,data,label):\n", " '''\n", " param fold: 要取第几折的数据。如要取第5折则 flod=5\n", " param data: 需要分块的数据\n", " param label: 对应的需要分块标签\n", " return: 对应折的训练集、测试集和对应的标签\n", " '''\n", " split_list = []\n", " kf = KFold(n_splits=10)\n", " for train, test in kf.split(data):\n", " split_list.append(train.tolist())\n", " split_list.append(test.tolist())\n", " train,test=split_list[2 * fold],split_list[2 * fold + 1]\n", " return data[train], data[test], label[train], label[test] #已经分好块的数据集" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "GradientDescent:93.01952027168056%\n", "Least square method:92.97642440889588%\n", "SKlearn:93.12790085597558%\n" ] }, { "data": { "image/png": "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VFRUsGLFCpRS+Q5HFDitNYODg3R2drJy5coZXydTn0IIIcQcjI+PU1NTI0mamBGlFDU1NbMegZVETQghhJgjSdLEbMzl+0USNSGEEEKIAiWJmhBCCFHEent7+Z3f+R1WrVrF9u3bueqqq/jJT34y5/vdeeed/OM//iMAn/vc53jsscfmdJ99+/bx8MMPZz6/++67qa2t5ZJLLmHt2rXcfPPNPPvss3OOMxteH2MhkkRNCCGEKFJaa971rndx7bXXcuzYMfbs2cO9995LZ2fnlPNSqdSc7n/XXXdx4403zuna6ZKgnTt38tJLL3H06FE++9nP8p73vIdDhw7N6f7ZIImaEEIIIXLm8ccfx+Px8Ed/9EeZY8uXL+cTn/gEd999N7fddhs33HADb37zm4nFYrz5zW/m0ksvZfPmzfz0pz/NXPOFL3yBdevWcc011/Daa69ljt9xxx386Ec/AmDPnj286U1vYvv27dx88810d3cDcN111/GZz3yGyy+/nHXr1vH000+TSCT43Oc+x3333ce2bdu47777zor9+uuv56Mf/Sjf/OY3AWhvb+eWW25h+/btvPGNb+Tw4cMA3H///WzatImtW7dy7bXXAmBZFn/+53/Opk2b2LJlC1/96ldzEmMhkPIcQgghxDz97c8OcPB0JKv33NDo5/Pv2Hjecw4cOMCll156ztf37t3LK6+8QnV1NalUip/85Cf4/X4GBga48sorue2229i7dy/33nsv+/btI5VKcemll7J9+/Yp90kmk3ziE5/gpz/9KbW1tdx333381V/9Fd/+9rcBZ8TuxRdf5OGHH+Zv//Zveeyxx7jrrrvYvXs3//qv/wo4U5+vd+mll/KNb3wDgI9+9KN8/etfZ+3atbzwwgt87GMf4/HHH+euu+7ikUceoampiVAoBMA3v/lNTpw4wb59+3C5XAwNDWUlxkIkiZoQQgixSPzxH/8x//Vf/4XH4+GP//iPectb3kJ1dTXgTJP+5V/+JU899RSGYdDV1UVvby9PP/007373uyktLQXgtttuO+u+r732Gvv37+ctb3kL4IxoNTQ0ZF5/z3veA8D27ds5ceLEjOPVWgMQi8V49tlnuf322zOvxeNxAK6++mruuOMO3ve+92We89hjj/FHf/RHuFxOGlNdXc3+/ftzEmO+SaImhBBCzNOFRr5yZePGjfz4xz/OfP61r32NgYEBduzYAUBZWVnmte9973v09/ezZ88e3G43K1asmHFNL601Gzdu5Lnnnpv2da/XC4BpmrNaD/fSSy+xfv16bNumsrKSffv2nXXO17/+dV544QV27drF9u3b2bNnz4LGmG+yRk0IIYQoUjfccAPj4+P827/9W+bY6OjotOeGw2Hq6upwu938+te/5uTJkwBce+21PPDAA4yNjRGNRvnZz3521rUXXXQR/f39mSQomUxy4MCB88ZWUVFBNBo95+tPPvkk3/zmN/nIRz6C3+9n5cqV3H///YCTdL388suAs3btiiuu4K677qK2tpaOjg7e8pa38I1vfCOTcA0NDeUkxkIgiZoQQghRpJRSPPDAAzz55JOsXLmSyy+/nA9+8IP8wz/8w1nnfuADH2D37t1s3ryZ73znO1x88cWAs05s586dbN26lVtvvZXLLrvsrGs9Hg8/+tGP+MxnPsPWrVvZtm3bBUtrXH/99Rw8eHDKQv30wv1169bx93//9/z4xz9m/fr1gDPi961vfYutW7eycePGzGaHT33qU2zevJlNmzbxhje8ga1bt/LhD3+Y1tZWtmzZwtatW/n+97+ftRgLjUrPDy8mO3bs0Lt37853GEIIIRaxQ4cOZZIMIWZquu8bpdQerfWO6c6XETUhhBBCiAIliZoQQgghRIGSRE0IIYQQokBJoiaEEEIIUaAkURNCCCGEKFCSqAkhRA6lBgY49aEPkxoczHcoQogiJImaEELk0NgrrzLyzDOMvfxKvkMRi1B5eXlO7nvixAm+//3v5+Tehej17/fuu+/m4x//+JzvN9/rJ5NETQghcsiOOo26UwP9eY5EiJkrlERNa41t2zl/TqG83+lIoiaEEDlkhdOJ2kCeIxFLRXt7O7fccgvbt2/njW98I4cPHwbgZz/7GVdccQWXXHIJN954I729vYDTymnbtm1s27aNSy65hGg0ymc/+1mefvpptm3bxj/90z9NuX93dzfXXnst27ZtY9OmTTz99NMA/L//9/9Yt24dl19+OR/5yEcyI0p33HEHP/rRjzLXp0cBY7EYb37zm7n00kvZvHlzphPBiRMnuOiii/i93/s9Nm3aREdHB1/+8pe57LLL2LJlC5///Oenfd/l5eV86lOfYuPGjdx44428+OKLXHfddaxatYoHH3wQcBq1f+pTn8rc6xvf+AbA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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "from numpy.linalg import inv\n", "from sklearn import linear_model\n", "class GradientDescent_MultiLine:\n", " def __init__(self, lr, epochs):\n", " self.lr = lr # 学习率,用来控制步长(权重调整幅度)\n", " self.epochs = epochs # 循环迭代的次数\n", " self.lose = [] # 损失值计算(损失函数):均方误差\n", "\n", " '''根据提供的训练数据对模型进行训练'''\n", "\n", " def fit(self, x, y):\n", " x = np.asarray(x)\n", " y = np.asarray(y)\n", " y = np.squeeze(y) # 去掉冗余的维度\n", "\n", " self.w = np.zeros(1 + x.shape[1]) # 初始权重,权重向量初始值为0(或任何其他值),长度比X的特征数量多1(多出来的为截距)\n", "\n", " # 开始训练\n", " for i in range(self.epochs):\n", " y_hat = np.dot(x, self.w[1:]) + self.w[0] # 计算预测值\n", " error = y - y_hat # 计算真实值与预测值之间的差距\n", " self.lose.append(np.sum(error ** 2) / 2 + 0.1* np.dot(self.w.T, self.w)) # 将损失加入到损失列表中,使用L2范数正则化\n", " #print(\"迭代次数:{0},进度:{1}%\".format(i + 1, 100.0 * (i + 1) / self.epochs), \" loss:\", np.sum(error ** 2) / 2)\n", " # j <- j + α * sum((y - y_hat) * x(j))\n", " x_=np.c_[np.ones([x.shape[0],1]),x]\n", " #self.w[0] += self.lr * np.sum(error)\n", " #self.w[1:] += self.lr * np.dot(x.T, error)\n", " I=np.identity(x_.shape[1])\n", " self.w=self.w-self.lr*(np.dot((np.dot(x_.T, x_)+0.2*I), self.w)-np.dot(x_.T, y))\n", "\n", " '''样本进行预测'''\n", "\n", " def predict(self, x):\n", " x = np.asarray(x) # 测试样本\n", " result = np.dot(x, self.w[1:]) + self.w[0] # 预测结果\n", " return result\n", "\n", " '''损失收敛图'''\n", "\n", " def loss_ans_show(self):\n", " if len(self.lose) == 0:\n", " print(\"Error\")\n", " return\n", " x = range(len(self.lose))\n", " plt.plot(x, self.lose, 'r', label='loss function')\n", " plt.title('loss convergence')\n", " plt.ylabel(\"loss\")\n", " plt.xlabel(\"iter\")\n", " plt.legend()\n", " plt.show()\n", "\n", "\n", "''' \n", "函数名:lms(least square method)\n", "功能:最小二乘法\n", "'''\n", "\n", "\n", "def lms(x_train, x_test, y_train, y_test):\n", " x_train_=np.c_[np.ones([x_train.shape[0],1]),x_train]\n", " x_test_=np.c_[np.ones([x_test.shape[0],1]),x_test]\n", " theta_n = np.dot(np.dot(inv(np.dot(x_train_.T, x_train_)+0.1*np.eye(x_train_.shape[1])), x_train_.T), y_train) # theta = (X`X)^(-1)X`Y,其中X`表示X的转置,使用L2范数正则化\n", " y_pre = np.dot(x_test_, theta_n)\n", " mse = np.average((y_test - y_pre) ** 2)\n", " return theta_n, y_pre, mse\n", "\n", "\n", "\"\"\"\n", "函数名:fit_transform\n", "功能:对数据进行标准化处理,即均值为0,标准差为1\n", "\"\"\"\n", "\n", "\n", "def fit_transform(x):\n", " x = np.asarray(x)\n", " std_ = np.std(x, axis=0) # 标准差\n", " mean_ = np.mean(x, axis=0) # 均值\n", " return (x - mean_) / std_\n", "\n", "\n", "if __name__ == '__main__':\n", "\n", " '''载入数据'''\n", " \n", " data=pd.read_csv('5_train.csv')\n", " X = np.asarray(data.get(['TV','radio','newspaper']))\n", " y = np.asarray(data.get('sales'))\n", " X_s = fit_transform(X)\n", " y_s = fit_transform(y)\n", "\n", " # for i in range(10):\n", " # x_train, x_test, y_train, y_test = Ten_Flod_spilt(i,X_s,y_s)\n", " x_train, x_test, y_train, y_test = Ten_Flod_spilt(0,X_s,y_s)\n", " '''1.梯度下降法'''\n", " if True:\n", " GD = GradientDescent_MultiLine(lr=0.0001, epochs=500)\n", " GD.fit(x_train, y_train)\n", " pre_gd = GD.predict(x_test)\n", " mse_gd = np.average((y_test - pre_gd) ** 2)\n", " #GD.loss_ans_show()\n", "\n", " '''2.最小二乘法:least square method'''\n", " if True:\n", " theta_n, pre_lms, mse_lms = lms(x_train, x_test, y_train, y_test)\n", "\n", " '''3.sklearn'''\n", " if True:\n", " regr = linear_model.Ridge() #Ridge回归即为加了L2范数的线性回归\n", " regr.fit(x_train, y_train)\n", " pre_sk = regr.predict(x_test)\n", " mse_sk = np.average((y_test - pre_sk) ** 2)\n", "\n", " '''模型评价'''\n", " #print(\"第{}折数据作为测试集结果:\".format(i+1))\n", " print('GradientDescent:{}%'.format((1 - mse_gd) * 100))\n", " print('Least square method:{}%'.format((1 - mse_lms) * 100))\n", " print('SKlearn:{}%'.format((1 - mse_sk) * 100))\n", "\n", " '''可视化'''\n", " plt.figure(figsize=(10, 10))\n", " plt.plot(pre_gd, label=\"GradientDescent\")\n", " plt.plot(pre_lms, label=\"Least square method\")\n", " plt.plot(pre_sk, label=\"SKlean\") \n", " plt.plot(y_test, label=\"Real value\")\n", " plt.title(\"Linear Regression\")\n", " plt.xlabel(\"Numbers\")\n", " plt.ylabel(\"Sales\")\n", " plt.legend()\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MSE=3.778434\n", "RMSE=1.907193\n", "R2=83.421193%\n", "[12.5809289 9.03544334 -0.21439746]\n", "3.5953129211961112\n" ] } ], "source": [ "import pandas as pd\n", "import numpy as np\n", "from sklearn.linear_model import Ridge\n", "from sklearn.model_selection import cross_val_score\n", "\n", "clf = Ridge(alpha=1)\n", "data=pd.read_csv('5_train.csv')\n", "X0=data.get(['TV','radio','newspaper'])\n", "y0=data.get('sales')\n", "X0=(X0-X0.min())/(X0.max()-X0.min())\n", "data_s = pd.concat([X0,y0],axis=1)\n", "# (data-data.min())/(data.max()-data.min()) \n", "# (data-data.mean())/(data.std())\n", "X1 = np.asarray(data_s.get(['TV','radio','newspaper']))\n", "y = np.asarray(data_s.get('sales'))\n", "clf.fit(X1,y)\n", "print('MSE=%f'%(-0.1*cross_val_score(clf, X1, y, cv=10, scoring='neg_mean_squared_error').sum()))\n", "print('RMSE=%f'%(-0.1*cross_val_score(clf, X1, y, cv=10, scoring='neg_root_mean_squared_error').sum()))\n", "print('R2=%f'%(10*cross_val_score(clf, X1, y, cv=10, scoring='r2').sum())+'%')\n", "print(clf.coef_)\n", "print(clf.intercept_)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MSE=3.756071\n", "RMSE=1.901714\n", "R2=83.515904%\n", "[12.58154102 8.99307052]\n", "3.5574764996813855\n" ] } ], "source": [ "X2 = np.asarray(data_s.get(['TV','radio']))\n", "clf.fit(X2,y)\n", "print('MSE=%f'%(-0.1*cross_val_score(clf, X2, y, cv=10, scoring='neg_mean_squared_error').sum()))\n", "print('RMSE=%f'%(-0.1*cross_val_score(clf, X2, y, cv=10, scoring='neg_root_mean_squared_error').sum()))\n", "print('R2=%f'%(10*cross_val_score(clf, X2, y, cv=10, scoring='r2').sum())+'%')\n", "print(clf.coef_)\n", "print(clf.intercept_)" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MSE=6.336864\n", "RMSE=2.464087\n", "R2=71.944713%\n", "[11.4118336 8.83699354 -0.37778007]\n", "6.23721130535131\n" ] } ], "source": [ "data_s['TV_sq'] = data_s['TV'].apply(lambda x: x**2)\n", "X3 = np.asarray(data_s.get(['TV_sq','radio','newspaper']))\n", "clf.fit(X3,y)\n", "print('MSE=%f'%(-0.1*cross_val_score(clf, X3, y, cv=10, scoring='neg_mean_squared_error').sum()))\n", "print('RMSE=%f'%(-0.1*cross_val_score(clf, X3, y, cv=10, scoring='neg_root_mean_squared_error').sum()))\n", "print('R2=%f'%(10*cross_val_score(clf, X3, y, cv=10, scoring='r2').sum())+'%')\n", "print(clf.coef_)\n", "print(clf.intercept_)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MSE=4.199675\n", "RMSE=2.002483\n", "R2=80.570702%\n", "[12.65661504 8.86787648 -0.18568808]\n", "5.0377691662031445\n" ] } ], "source": [ "data_s['radio_sq'] = data_s['radio'].apply(lambda x: x**2)\n", "X4 = np.asarray(data_s.get(['TV','radio_sq','newspaper']))\n", "clf.fit(X4,y)\n", "print('MSE=%f'%(-0.1*cross_val_score(clf, X4, y, cv=10, scoring='neg_mean_squared_error').sum()))\n", "print('RMSE=%f'%(-0.1*cross_val_score(clf, X4, y, cv=10, scoring='neg_root_mean_squared_error').sum()))\n", "print('R2=%f'%(10*cross_val_score(clf, X4, y, cv=10, scoring='r2').sum())+'%')\n", "print(clf.coef_)\n", "print(clf.intercept_)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MSE=8.454299\n", "RMSE=2.844672\n", "R2=62.950683%\n", "[11.0413785 8.84996724 -0.45001322]\n", "7.331957544248121\n" ] } ], "source": [ "data_s['TV_cu'] = data_s['TV'].apply(lambda x: x**3)\n", "X5 = np.asarray(data_s.get(['TV_cu','radio','newspaper']))\n", "clf.fit(X5,y)\n", "print('MSE=%f'%(-0.1*cross_val_score(clf, X5, y, cv=10, scoring='neg_mean_squared_error').sum()))\n", "print('RMSE=%f'%(-0.1*cross_val_score(clf, X5, y, cv=10, scoring='neg_root_mean_squared_error').sum()))\n", "print('R2=%f'%(10*cross_val_score(clf, X5, y, cv=10, scoring='r2').sum())+'%')\n", "print(clf.coef_)\n", "print(clf.intercept_)" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MSE=5.025756\n", "RMSE=2.199985\n", "R2=76.525134%\n", "[12.68546584 8.86692954 0.22070074]\n", "5.594139161574267\n" ] } ], "source": [ "data_s['radio_cu'] = data_s['radio'].apply(lambda x: x**3)\n", "X6 = np.asarray(data_s.get(['TV','radio_cu','newspaper']))\n", "clf.fit(X6,y)\n", "print('MSE=%f'%(-0.1*cross_val_score(clf, X6, y, cv=10, scoring='neg_mean_squared_error').sum()))\n", "print('RMSE=%f'%(-0.1*cross_val_score(clf, X6, y, cv=10, scoring='neg_root_mean_squared_error').sum()))\n", "print('R2=%f'%(10*cross_val_score(clf, X6, y, cv=10, scoring='r2').sum())+'%')\n", "print(clf.coef_)\n", "print(clf.intercept_)" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MSE=9.872726\n", "RMSE=3.073845\n", "R2=55.010379%\n", "[11.12313062 8.57231739 0.02071179]\n", "9.334065477090927\n" ] } ], "source": [ "X7 = np.asarray(data_s.get(['TV_cu','radio_cu','newspaper']))\n", "clf.fit(X7,y)\n", "print('MSE=%f'%(-0.1*cross_val_score(clf, X7, y, cv=10, scoring='neg_mean_squared_error').sum()))\n", "print('RMSE=%f'%(-0.1*cross_val_score(clf, X7, y, cv=10, scoring='neg_root_mean_squared_error').sum()))\n", "print('R2=%f'%(10*cross_val_score(clf, X7, y, cv=10, scoring='r2').sum())+'%')\n", "print(clf.coef_)\n", "print(clf.intercept_)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MSE=6.844317\n", "RMSE=2.554745\n", "R2=68.531613%\n", "[11.46503148 8.61889646 -0.32568699]\n", "7.677212088691033\n" ] } ], "source": [ "X8 = np.asarray(data_s.get(['TV_sq','radio_sq','newspaper']))\n", "clf.fit(X8,y)\n", "print('MSE=%f'%(-0.1*cross_val_score(clf, X8, y, cv=10, scoring='neg_mean_squared_error').sum()))\n", "print('RMSE=%f'%(-0.1*cross_val_score(clf, X8, y, cv=10, scoring='neg_root_mean_squared_error').sum()))\n", "print('R2=%f'%(10*cross_val_score(clf, X8, y, cv=10, scoring='r2').sum())+'%')\n", "print(clf.coef_)\n", "print(clf.intercept_)" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MSE=9.043577\n", "RMSE=2.937670\n", "R2=58.997328%\n", "[11.07546784 8.59695288 -0.38145537]\n", "8.789452593943805\n" ] } ], "source": [ "X9 = np.asarray(data_s.get(['TV_cu','radio_sq','newspaper']))\n", "clf.fit(X9,y)\n", "print('MSE=%f'%(-0.1*cross_val_score(clf, X9, y, cv=10, scoring='neg_mean_squared_error').sum()))\n", "print('RMSE=%f'%(-0.1*cross_val_score(clf, X9, y, cv=10, scoring='neg_root_mean_squared_error').sum()))\n", "print('R2=%f'%(10*cross_val_score(clf, X9, y, cv=10, scoring='r2').sum())+'%')\n", "print(clf.coef_)\n", "print(clf.intercept_)" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MSE=7.650625\n", "RMSE=2.705914\n", "R2=64.598855%\n", "[11.50990816 8.60483527 0.07352435]\n", "8.21876417143322\n" ] } ], "source": [ "X10 = np.asarray(data_s.get(['TV_sq','radio_cu','newspaper']))\n", "clf.fit(X10,y)\n", "print('MSE=%f'%(-0.1*cross_val_score(clf, X10, y, cv=10, scoring='neg_mean_squared_error').sum()))\n", "print('RMSE=%f'%(-0.1*cross_val_score(clf, X10, y, cv=10, scoring='neg_root_mean_squared_error').sum()))\n", "print('R2=%f'%(10*cross_val_score(clf, X10, y, cv=10, scoring='r2').sum())+'%')\n", "print(clf.coef_)\n", "print(clf.intercept_)" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MSE=8.349800\n", "RMSE=2.841950\n", "R2=62.772311%\n", "[12.92400609 9.94667542]\n", "6.100808821501371\n" ] } ], "source": [ "data_s['radio_news'] = data_s['radio']*data_s['newspaper']\n", "X11 = np.asarray(data_s.get(['TV','radio_news']))\n", "clf.fit(X11,y)\n", "print('MSE=%f'%(-0.1*cross_val_score(clf, X11, y, cv=10, scoring='neg_mean_squared_error').sum()))\n", "print('RMSE=%f'%(-0.1*cross_val_score(clf, X11, y, cv=10, scoring='neg_root_mean_squared_error').sum()))\n", "print('R2=%f'%(10*cross_val_score(clf, X11, y, cv=10, scoring='r2').sum())+'%')\n", "print(clf.coef_)\n", "print(clf.intercept_)" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MSE=3.783293\n", "RMSE=1.908585\n", "R2=83.412071%\n", "[12.58164041 9.00687884 -0.07911424]\n", "3.5889955747012365\n" ] } ], "source": [ "data_s['news_sqrt'] = data_s['newspaper'].apply(lambda x: x**0.5)\n", "X12 = np.asarray(data_s.get(['TV','radio','news_sqrt']))\n", "clf.fit(X12,y)\n", "print('MSE=%f'%(-0.1*cross_val_score(clf, X12, y, cv=10, scoring='neg_mean_squared_error').sum()))\n", "print('RMSE=%f'%(-0.1*cross_val_score(clf, X12, y, cv=10, scoring='neg_root_mean_squared_error').sum()))\n", "print('R2=%f'%(10*cross_val_score(clf, X12, y, cv=10, scoring='r2').sum())+'%')\n", "print(clf.coef_)\n", "print(clf.intercept_)" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MSE=0.862676\n", "RMSE=0.908104\n", "R2=96.076495%\n", "[12.29332278 10.68599057 3.52243025 -0.2148761 ]\n", "1.3567248369641494\n" ] } ], "source": [ "data_s['TV_min'] = data_s['TV'].apply(lambda x:x**0.3)\n", "data_s['TV_radio']=data_s['TV']*data_s['radio']\n", "X13 = np.asarray(data_s.get(['TV_radio','TV_min','radio','newspaper']))\n", "clf.fit(X13,y)\n", "print('MSE=%f'%(-0.1*cross_val_score(clf, X13, y, cv=10, scoring='neg_mean_squared_error').sum()))\n", "print('RMSE=%f'%(-0.1*cross_val_score(clf, X13, y, cv=10, scoring='neg_root_mean_squared_error').sum()))\n", "print('R2=%f'%(10*cross_val_score(clf, X13, y, cv=10, scoring='r2').sum())+'%')\n", "print(clf.coef_)\n", "print(clf.intercept_)" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "MSE=2.809547\n", "RMSE=1.604699\n", "R2=88.587106%\n", "[19.91597489 -0.17868913]\n", "9.40488897791603\n" ] } ], "source": [ "X14 = np.asarray(data_s.get(['TV_radio','newspaper']))\n", "clf.fit(X14,y)\n", "print('MSE=%f'%(-0.1*cross_val_score(clf, X14, y, cv=10, scoring='neg_mean_squared_error').sum()))\n", "print('RMSE=%f'%(-0.1*cross_val_score(clf, X14, y, cv=10, scoring='neg_root_mean_squared_error').sum()))\n", "print('R2=%f'%(10*cross_val_score(clf, X14, y, cv=10, scoring='r2').sum())+'%')\n", "print(clf.coef_)\n", "print(clf.intercept_)" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['model.pickle']" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import joblib\n", "joblib.dump(clf,'model.pickle') #保存" ] } ], "metadata": { "interpreter": { "hash": "cc5f70855ac006f3de45a3cc3b9e7d8d53845e50458809cb162b0174266dec97" }, "kernelspec": { "display_name": "Python 3.7.0 64-bit ('base': conda)", "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.7.0" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }