Skip to content

Instantly share code, notes, and snippets.

@ssugiyama
Created March 26, 2018 11:56
Show Gist options
  • Save ssugiyama/baf1002f49210e743c358bc2f91430d5 to your computer and use it in GitHub Desktop.
Save ssugiyama/baf1002f49210e743c358bc2f91430d5 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 89,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"c:\\program files\\python36\\lib\\site-packages\\statsmodels\\compat\\pandas.py:56: FutureWarning: The pandas.core.datetools module is deprecated and will be removed in a future version. Please use the pandas.tseries module instead.\n",
" from pandas.core import datetools\n"
]
}
],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"from sklearn.linear_model import LinearRegression, Ridge, Lasso, ElasticNet\n",
"from sklearn.metrics.pairwise import rbf_kernel, polynomial_kernel\n",
"from sklearn.kernel_ridge import KernelRidge\n",
"import matplotlib.pyplot as plt\n",
"import statsmodels.api as sm\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"df = pd.read_csv('shojisu_kaiten2.csv')"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"x = df.iloc[:, 0:8].values\n",
"y = df.iloc[:, 8].values.reshape(-1, 1)"
]
},
{
"cell_type": "code",
"execution_count": 208,
"metadata": {},
"outputs": [],
"source": [
"logx = np.hstack((x[:, 0:1], np.log(x[:,1:]+1)))\n",
"logy = np.log(y)"
]
},
{
"cell_type": "code",
"execution_count": 205,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(84, 7)"
]
},
"execution_count": 205,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x[:, 1:].shape"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"x0 = x[x[:, 0] == 0]\n",
"y0 = y[x[:, 0] == 0]\n",
"x1 = x[x[:, 0] == 1]\n",
"y1 = y[x[:, 0] == 1]"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.model_selection import KFold\n",
"kfold = KFold(5, shuffle=True)\n",
"split = kfold.split(x1)\n",
"split = list(split)"
]
},
{
"cell_type": "code",
"execution_count": 281,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(42, 8)"
]
},
"execution_count": 281,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x0.shape"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"def get_dataset(i, _x, _y):\n",
" return _x[split[i][0]], _y[split[i][0]], _x[split[i][1]], _y[split[i][1]]"
]
},
{
"cell_type": "code",
"execution_count": 265,
"metadata": {},
"outputs": [],
"source": [
"class GLMWrapper():\n",
" def __init__(self, family, fit_intercept=True, **glm_params):\n",
" self.family = family\n",
" self.fit_intercept = fit_intercept \n",
" self.glm_params = glm_params\n",
" \n",
" def fit(self, x, y):\n",
" _x = sm.add_constant(x) if self.fit_intercept else x\n",
" self.glm = sm.GLM(y, _x, family=self.family, **self.glm_params)\n",
" self.results = self.glm.fit()\n",
" return self.glm\n",
"\n",
" def predict(self, x):\n",
" _x = sm.add_constant(x) if self.fit_intercept else x\n",
" return self.glm.predict(self.results.params, _x)"
]
},
{
"cell_type": "code",
"execution_count": 275,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/usr/local/lib/python3.6/site-packages/scipy/linalg/basic.py:223: RuntimeWarning: scipy.linalg.solve\n",
"Ill-conditioned matrix detected. Result is not guaranteed to be accurate.\n",
"Reciprocal condition number: 9.221851574618809e-20\n",
" ' condition number: {}'.format(rcond), RuntimeWarning)\n"
]
},
{
"data": {
"text/plain": [
"KernelRidge(alpha=0, coef0=1, degree=3, gamma=1e-07, kernel='linear',\n",
" kernel_params=None)"
]
},
"execution_count": 275,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\n",
"kr = KernelRidge(alpha=0, kernel='linear', gamma=0.0000001)\n",
"kr.fit(train_x, train_y)"
]
},
{
"cell_type": "code",
"execution_count": 96,
"metadata": {},
"outputs": [],
"source": [
"pred_y = kr.predict(test_x)"
]
},
{
"cell_type": "code",
"execution_count": 97,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"147994343.75911847"
]
},
"execution_count": 97,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np.mean((test_y-pred_y)**2)"
]
},
{
"cell_type": "code",
"execution_count": 305,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"67865064.4404\n",
"10449139.6124\n",
"196035499.104\n",
"10724610.4334\n",
"3669224.84989\n"
]
},
{
"data": {
"text/plain": [
"44225771.692438349"
]
},
"execution_count": 305,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pred_ys = []\n",
"for i in range(5):\n",
" train_x, train_y, test_x, test_y = get_dataset(i, logx, y)\n",
" k_train_x = rbf_kernel(train_x, gamma=0.001)\n",
" k_test_x = rbf_kernel(test_x, train_x, gamma=0.001)\n",
" kx = rbf_kernel(x1, train_x, gamma=0.001)\n",
" # kr = Ridge(alpha=1)\n",
" \n",
" kr = GLMWrapper(sm.families.NegativeBinomial())\n",
" #kr = Ridge(alpha=0.5,normalize=True) \n",
" #kr = LinearRegression()\n",
" kr.fit(train_x, train_y)\n",
" #kr = Lasso(alpha=1,normalize=False) \n",
" #kr = KernelRidge(0, 'poly', degree=1)\n",
" #pred_y = kr.predict(test_x)\n",
" pred_y = kr.predict(test_x)\n",
" #print(np.mean((np.log(pred_y) - np.log(test_y) )**2))\n",
" print(np.mean((pred_y - test_y )**2))\n",
" pred_y = kr.predict(logx)\n",
" pred_ys.append(pred_y)\n",
"np.mean(((np.mean(pred_ys, axis=0)) - 0)**2)"
]
},
{
"cell_type": "code",
"execution_count": 268,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ 1374.82855183, 6228.30900688, 4324.39505533, 6125.99140353,\n",
" 4419.65849366, 3127.4613946 , 713.30932602, 6458.56741045,\n",
" 843.14370286, 3976.37729052, 549.04342013, 839.11891771,\n",
" 9090.9682083 , 2369.56398816, 1162.90358724, 15475.85432267,\n",
" 3509.54317104, 7371.33990605, 3358.16393206, 1596.45181012,\n",
" 3211.65173914, 2641.65225957, 17348.74649527, 1101.73263096,\n",
" 967.84186867, 2326.07992903, 2055.17468638, 2609.17705984,\n",
" 5265.307914 , 6449.30381541, 2537.94277564, 3627.81784218,\n",
" 1952.434558 , 5359.070069 , 5281.20774948, 11499.38175655,\n",
" 588.06920688, 4178.47963691, 294.1351087 , 3655.1670617 ,\n",
" 586.57538772, 223.10529007, 1142.5787003 , 3400.94617571,\n",
" 990.84580629, 7064.87715549, 558.34329942, 2664.48071361,\n",
" 110.88647223, 205.55015168, 169.62015372, 105.70671195,\n",
" 2563.77200272, 2000.86026489, 929.12495443, 3075.23300617,\n",
" 1151.8290254 , 4082.19178947, 3143.93610663, 1111.67474815,\n",
" 533.97448852, 6425.22374189, 752.29714305, 6155.7503233 ,\n",
" 2218.04800945, 2086.40480152, 1529.79212506, 18972.90471249,\n",
" 2037.17779276, 12255.72628786, 2921.68797132, 1490.48584119,\n",
" 1305.78985869, 3450.05969471, 4593.84306297, 6952.39407816,\n",
" 7562.68920296, 2036.1385675 , 3210.65236034, 9360.62633861,\n",
" 3739.23872461, 30095.09413474, 6775.38495471, 4259.4954062 ])"
]
},
"execution_count": 268,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pred_ys[0]"
]
},
{
"cell_type": "code",
"execution_count": 88,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x2031a7cecf8>"
]
},
"execution_count": 88,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x2031a760438>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.scatter(y1, (np.mean(pred_ys, axis=0)).reshape(-1,1)-np.log(y1))"
]
},
{
"cell_type": "code",
"execution_count": 312,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ -260.09582989, 1253.14800558, -623.23894678, -2100.5579591 ,\n",
" 2096.04043716, -1370.39462547, 70.471288 , 2061.18171313,\n",
" 210.27182744, -924.13772215, -1939.32669674, 109.78702867,\n",
" -215.15916274, 299.37574509, 63.85001686, -50.66809427,\n",
" 263.72994123, 671.91824185, 181.97868203, 715.65134855,\n",
" 36.57555645, 121.47592863, -280.29311864, 407.80912381,\n",
" 590.11777997, -2111.80080431, -845.19197236, 214.94107447,\n",
" -721.85117123, -840.04805598, 197.87427703, 2895.46423512,\n",
" -750.12368083, -536.93128617, 1168.90487671, -1788.80896264,\n",
" 786.72263237, -67.72275628, -2891.4098957 , 661.3327594 ])"
]
},
"execution_count": 312,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(((np.mean(pred_ys, axis=0))-y0).flatten())"
]
},
{
"cell_type": "code",
"execution_count": 270,
"metadata": {},
"outputs": [],
"source": [
"y0 = np.delete(y0, 39)"
]
},
{
"cell_type": "code",
"execution_count": 296,
"metadata": {},
"outputs": [],
"source": [
"x0 = np.delete(x0, 39, axis=0)\n",
"y0 = np.delete(y0, 39, axis=0)"
]
},
{
"cell_type": "code",
"execution_count": 287,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(42, 8)"
]
},
"execution_count": 287,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x0.shape"
]
},
{
"cell_type": "code",
"execution_count": 292,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"2.7453835805791891"
]
},
"execution_count": 292,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(np.var(y)-np.mean(y))/np.mean(y)**2"
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"98609630.3591\n"
]
}
],
"source": [
"from sklearn.ensemble import RandomForestRegressor\n",
"rfr = RandomForestRegressor(max_depth=12)\n",
"rfr.fit(x, y.reshape(-1))\n",
"pred_y = rfr.predict(x)\n",
"print(np.mean((pred_y - y)**2))"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x2031a5383c8>"
]
},
"execution_count": 65,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x2031a4dd470>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.scatter(y.reshape(-1), pred_y-y.reshape(-1))"
]
},
{
"cell_type": "code",
"execution_count": 129,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.00791962009451\n",
"316702707.955\n",
"0.00119700645577\n",
"3.52025743174e+168\n",
"0.136205072374\n",
"3.30928255797e+12\n",
"0.482399995081\n",
"1.68750696784e+72\n",
"0.0104828269602\n",
"1.18766157026e+50\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"c:\\program files\\python36\\lib\\site-packages\\statsmodels\\genmod\\generalized_linear_model.py:656: RuntimeWarning: divide by zero encountered in double_scalars\n",
" (self.df_resid))\n"
]
},
{
"data": {
"text/plain": [
"(array([ 41., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
" 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
" 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
" 0., 0., 0., 0., 0., 0., 1.]),\n",
" array([ -2.09966022e+03, 2.81435236e+82, 5.62870473e+82,\n",
" 8.44305709e+82, 1.12574095e+83, 1.40717618e+83,\n",
" 1.68861142e+83, 1.97004665e+83, 2.25148189e+83,\n",
" 2.53291713e+83, 2.81435236e+83, 3.09578760e+83,\n",
" 3.37722284e+83, 3.65865807e+83, 3.94009331e+83,\n",
" 4.22152854e+83, 4.50296378e+83, 4.78439902e+83,\n",
" 5.06583425e+83, 5.34726949e+83, 5.62870473e+83,\n",
" 5.91013996e+83, 6.19157520e+83, 6.47301043e+83,\n",
" 6.75444567e+83, 7.03588091e+83, 7.31731614e+83,\n",
" 7.59875138e+83, 7.88018662e+83, 8.16162185e+83,\n",
" 8.44305709e+83, 8.72449232e+83, 9.00592756e+83,\n",
" 9.28736280e+83, 9.56879803e+83, 9.85023327e+83,\n",
" 1.01316685e+84, 1.04131037e+84, 1.06945390e+84,\n",
" 1.09759742e+84, 1.12574095e+84]),\n",
" <a list of 40 Patch objects>)"
]
},
"execution_count": 129,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x2031cb69208>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"pred_ys = []\n",
"for i in range(5):\n",
" train_x, train_y, test_x, test_y = get_dataset(i, x0, y0)\n",
" k_train_x = polynomial_kernel(train_x, degree=2)\n",
" k_test_x = polynomial_kernel(test_x, train_x, degree=2)\n",
" kx = polynomial_kernel(x0, train_x, degree=2)\n",
" __y = train_y\n",
" # kr = Ridge(alpha=1)\n",
" __x = sm.add_constant(k_train_x)\n",
" model = sm.GLM(__y, __x, family=sm.families.NegativeBinomial())\n",
" results = model.fit()\n",
" pred_train_y = model.predict(results.params)\n",
" ___x = sm.add_constant(k_test_x)\n",
" pred_test_y = model.predict(results.params, ___x)\n",
" print(np.mean((train_y.flatten()-pred_train_y)**2))\n",
" print(np.mean((test_y.flatten()-pred_test_y)**2))\n",
" ____x = sm.add_constant(kx)\n",
" pred_y = model.predict(results.params, ____x)\n",
" pred_ys.append(pred_y)\n",
"plt.hist(np.mean(pred_ys, axis=0)-y0.flatten(), bins=40)"
]
},
{
"cell_type": "code",
"execution_count": 113,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(9, 8)"
]
},
"execution_count": 113,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test_x.shape"
]
},
{
"cell_type": "code",
"execution_count": 101,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"c:\\program files\\python36\\lib\\site-packages\\numpy\\core\\fromnumeric.py:2909: RuntimeWarning: Mean of empty slice.\n",
" out=out, **kwargs)\n",
"c:\\program files\\python36\\lib\\site-packages\\numpy\\core\\_methods.py:80: RuntimeWarning: invalid value encountered in double_scalars\n",
" ret = ret.dtype.type(ret / rcount)\n"
]
},
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x2031c33e320>"
]
},
"execution_count": 101,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x2031c25cac8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.scatter(np.log(y1).reshape(-1), np.mean(pred_ys, axis=0)-np.log(y1).reshape(-1))"
]
},
{
"cell_type": "code",
"execution_count": 262,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(array([ 27., 17., 9., 5., 5., 5., 4., 1., 1., 1., 2.,\n",
" 0., 1., 0., 0., 0., 0., 1., 0., 0., 0., 0.,\n",
" 1., 0., 0., 0., 0., 1., 0., 0., 1., 0., 0.,\n",
" 0., 0., 0., 0., 0., 0., 2.]),\n",
" array([ 85., 1037., 1989., 2941., 3893., 4845., 5797.,\n",
" 6749., 7701., 8653., 9605., 10557., 11509., 12461.,\n",
" 13413., 14365., 15317., 16269., 17221., 18173., 19125.,\n",
" 20077., 21029., 21981., 22933., 23885., 24837., 25789.,\n",
" 26741., 27693., 28645., 29597., 30549., 31501., 32453.,\n",
" 33405., 34357., 35309., 36261., 37213., 38165.]),\n",
" <a list of 40 Patch objects>)"
]
},
"execution_count": 262,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x203388681d0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.hist(y, bins=40)"
]
},
{
"cell_type": "code",
"execution_count": 201,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.collections.PathCollection at 0x203387e2358>"
]
},
"execution_count": 201,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x20338784748>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.scatter(np.log(x[:, 2]+1), np.log(y+1))"
]
},
{
"cell_type": "code",
"execution_count": 173,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"train: 0.256820800592\n",
"test: 0.454637535488\n",
"train: 0.270015055935\n",
"test: 0.476108724486\n",
"train: 0.292312166713\n",
"test: 0.400740949231\n",
"train: 0.318297762016\n",
"test: 0.154629220756\n",
"train: 0.34537749037\n",
"test: 0.217634735271\n"
]
},
{
"data": {
"text/plain": [
"([array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 2., 0., 2.,\n",
" 2., 3., 1., 0., 2., 4., 5., 2., 4., 1., 1., 3., 3.,\n",
" 1., 0., 3., 0., 1., 1., 1., 0., 0., 0., 0., 0., 0., 0.]),\n",
" array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
" 0., 0., 0., 0., 2., 0., 2., 2., 3., 1., 0., 2., 3.,\n",
" 6., 2., 4., 1., 1., 2., 4., 1., 0., 3., 0., 1., 1., 1.]),\n",
" array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
" 0., 0., 0., 1., 1., 2., 2., 3., 0., 1., 2., 2., 7.,\n",
" 2., 2., 3., 1., 1., 3., 3., 0., 3., 0., 1., 0., 2., 0.]),\n",
" array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
" 0., 0., 0., 0., 1., 1., 0., 3., 1., 3., 1., 0., 2.,\n",
" 5., 4., 3., 4., 0., 1., 3., 3., 1., 0., 3., 0., 1., 2.]),\n",
" array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
" 0., 0., 0., 1., 1., 2., 2., 3., 0., 1., 2., 3., 6.,\n",
" 2., 3., 2., 1., 1., 4., 2., 0., 3., 0., 1., 0., 2., 0.]),\n",
" array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
" 1., 1., 1., 3., 2., 1., 1., 2., 2., 6., 1., 4., 3.,\n",
" 1., 0., 4., 3., 0., 2., 1., 0., 1., 2., 0., 0., 0., 0.]),\n",
" array([ 0., 0., 0., 0., 0., 0., 1., 1., 2., 2., 3., 0., 1.,\n",
" 2., 2., 7., 2., 2., 3., 1., 1., 3., 3., 0., 3., 0.,\n",
" 0., 1., 2., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]),\n",
" array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
" 0., 0., 0., 0., 1., 1., 2., 2., 3., 0., 1., 2., 3.,\n",
" 6., 2., 2., 3., 1., 1., 3., 3., 0., 3., 0., 1., 0., 2.]),\n",
" array([ 0., 0., 0., 0., 0., 0., 0., 0., 1., 1., 0., 3., 1.,\n",
" 3., 1., 0., 2., 4., 5., 3., 4., 0., 1., 3., 3., 1.,\n",
" 0., 3., 0., 1., 1., 1., 0., 0., 0., 0., 0., 0., 0., 0.]),\n",
" array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
" 0., 1., 1., 1., 2., 2., 2., 1., 0., 2., 6., 3., 3.,\n",
" 4., 1., 0., 3., 3., 1., 0., 3., 0., 1., 2., 0., 0., 0.]),\n",
" array([ 0., 0., 0., 0., 0., 0., 1., 1., 0., 3., 1., 3., 1.,\n",
" 0., 2., 4., 5., 3., 4., 0., 1., 3., 3., 1., 0., 3.,\n",
" 0., 1., 1., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]),\n",
" array([ 0., 0., 0., 0., 0., 0., 0., 0., 1., 1., 2., 2., 3.,\n",
" 0., 1., 2., 3., 6., 2., 3., 2., 1., 1., 4., 2., 0.,\n",
" 3., 0., 1., 0., 2., 0., 0., 0., 0., 0., 0., 0., 0., 0.]),\n",
" array([ 0., 0., 0., 0., 0., 0., 0., 2., 0., 2., 2., 3., 1.,\n",
" 0., 2., 3., 6., 2., 4., 1., 1., 2., 4., 1., 0., 3.,\n",
" 0., 1., 1., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]),\n",
" array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.,\n",
" 1., 0., 3., 1., 3., 1., 0., 2., 4., 5., 3., 4., 0.,\n",
" 1., 3., 3., 1., 0., 3., 0., 1., 1., 1., 0., 0., 0., 0.]),\n",
" array([ 0., 0., 1., 1., 0., 3., 1., 3., 1., 0., 2., 5., 4.,\n",
" 3., 4., 0., 1., 3., 3., 1., 0., 3., 0., 1., 2., 0.,\n",
" 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]),\n",
" array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.,\n",
" 1., 1., 3., 2., 1., 1., 2., 2., 5., 2., 4., 3., 1.,\n",
" 0., 4., 2., 1., 1., 2., 0., 1., 2., 0., 0., 0., 0., 0.]),\n",
" array([ 0., 0., 0., 0., 0., 1., 1., 1., 2., 2., 2., 1., 0.,\n",
" 2., 6., 3., 3., 4., 1., 0., 3., 3., 1., 0., 3., 0.,\n",
" 1., 2., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]),\n",
" array([ 0., 0., 0., 1., 1., 0., 3., 1., 3., 1., 0., 2., 4.,\n",
" 5., 3., 4., 0., 1., 3., 3., 1., 0., 3., 0., 1., 1.,\n",
" 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]),\n",
" array([ 0., 0., 0., 1., 1., 2., 2., 3., 0., 1., 2., 2., 7.,\n",
" 1., 3., 3., 1., 0., 4., 3., 0., 3., 0., 0., 1., 2.,\n",
" 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]),\n",
" array([ 0., 0., 0., 0., 1., 1., 0., 3., 1., 3., 1., 0., 2.,\n",
" 4., 5., 3., 4., 0., 1., 3., 3., 1., 0., 3., 0., 1.,\n",
" 1., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]),\n",
" array([ 2., 0., 3., 1., 3., 1., 0., 2., 4., 5., 3., 3., 1.,\n",
" 1., 3., 3., 1., 0., 3., 0., 1., 1., 1., 0., 0., 0.,\n",
" 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]),\n",
" array([ 1., 1., 1., 2., 2., 2., 1., 0., 2., 6., 3., 3., 4.,\n",
" 1., 0., 3., 3., 1., 0., 3., 0., 1., 2., 0., 0., 0.,\n",
" 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]),\n",
" array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 1., 1.,\n",
" 3., 2., 1., 1., 2., 2., 5., 2., 4., 3., 1., 0., 4.,\n",
" 2., 1., 1., 2., 0., 1., 2., 0., 0., 0., 0., 0., 0., 0.]),\n",
" array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 1.,\n",
" 1., 3., 2., 1., 1., 2., 2., 5., 2., 3., 4., 1., 0.,\n",
" 4., 2., 1., 1., 2., 0., 1., 2., 0., 0., 0., 0., 0., 0.]),\n",
" array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 1., 2., 2.,\n",
" 3., 0., 1., 2., 2., 7., 0., 4., 3., 1., 0., 4., 3.,\n",
" 0., 2., 1., 0., 1., 2., 0., 0., 0., 0., 0., 0., 0., 0.]),\n",
" array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
" 1., 1., 1., 3., 2., 1., 1., 2., 2., 5., 2., 3., 4.,\n",
" 1., 0., 4., 2., 1., 1., 2., 0., 1., 2., 0., 0., 0., 0.]),\n",
" array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 1., 2., 2.,\n",
" 3., 0., 1., 2., 2., 7., 2., 2., 3., 1., 1., 3., 3.,\n",
" 0., 3., 0., 0., 1., 2., 0., 0., 0., 0., 0., 0., 0., 0.]),\n",
" array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
" 0., 1., 1., 0., 3., 1., 3., 1., 0., 2., 4., 5., 3.,\n",
" 4., 0., 1., 3., 3., 1., 0., 3., 0., 1., 1., 1., 0., 0.]),\n",
" array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
" 1., 1., 1., 2., 2., 2., 1., 2., 2., 5., 2., 3., 4.,\n",
" 1., 0., 4., 2., 1., 1., 2., 0., 1., 2., 0., 0., 0., 0.]),\n",
" array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 1., 1., 0., 3.,\n",
" 1., 3., 1., 0., 2., 6., 3., 3., 4., 1., 0., 3., 3.,\n",
" 1., 0., 3., 0., 1., 2., 0., 0., 0., 0., 0., 0., 0., 0.]),\n",
" array([ 0., 1., 1., 0., 3., 1., 3., 1., 0., 2., 4., 5., 3.,\n",
" 4., 0., 1., 3., 3., 1., 0., 3., 0., 1., 1., 1., 0.,\n",
" 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]),\n",
" array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 2.,\n",
" 0., 2., 2., 3., 1., 0., 2., 4., 5., 2., 4., 1., 1.,\n",
" 3., 3., 1., 0., 3., 0., 1., 1., 1., 0., 0., 0., 0., 0.]),\n",
" array([ 0., 0., 0., 1., 1., 0., 3., 1., 3., 1., 0., 2., 4.,\n",
" 5., 3., 4., 0., 1., 3., 3., 1., 0., 3., 0., 1., 1.,\n",
" 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]),\n",
" array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.,\n",
" 1., 2., 2., 3., 0., 1., 2., 3., 6., 2., 2., 3., 1.,\n",
" 1., 3., 3., 0., 3., 0., 1., 0., 2., 0., 0., 0., 0., 0.]),\n",
" array([ 0., 0., 0., 0., 0., 0., 0., 1., 1., 1., 2., 2., 2.,\n",
" 1., 1., 3., 5., 2., 3., 4., 1., 0., 4., 2., 1., 0.,\n",
" 3., 0., 1., 2., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]),\n",
" array([ 0., 0., 0., 0., 0., 1., 1., 1., 2., 2., 2., 1., 0.,\n",
" 2., 6., 3., 3., 4., 1., 0., 3., 3., 1., 0., 3., 0.,\n",
" 1., 2., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]),\n",
" array([ 0., 0., 0., 0., 0., 0., 1., 1., 1., 3., 2., 1., 1.,\n",
" 2., 2., 6., 1., 4., 3., 1., 0., 4., 3., 0., 2., 1.,\n",
" 0., 1., 2., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]),\n",
" array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 2., 0., 2.,\n",
" 2., 3., 1., 0., 2., 4., 5., 2., 4., 1., 1., 3., 3.,\n",
" 1., 0., 3., 0., 1., 1., 1., 0., 0., 0., 0., 0., 0., 0.]),\n",
" array([ 0., 0., 0., 0., 0., 0., 0., 1., 1., 1., 3., 2., 1.,\n",
" 1., 2., 2., 5., 2., 4., 3., 1., 0., 4., 2., 1., 1.,\n",
" 2., 0., 1., 2., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]),\n",
" array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 1.,\n",
" 1., 2., 2., 3., 0., 1., 2., 2., 7., 2., 2., 3., 1.,\n",
" 1., 3., 3., 0., 3., 0., 1., 0., 2., 0., 0., 0., 0., 0.]),\n",
" array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n",
" 2., 0., 2., 2., 3., 1., 0., 2., 3., 6., 2., 4., 1.,\n",
" 1., 2., 4., 1., 0., 3., 0., 1., 1., 1., 0., 0., 0., 0.]),\n",
" array([ 0., 0., 0., 0., 0., 0., 0., 0., 1., 1., 1., 3., 2.,\n",
" 1., 1., 2., 2., 5., 2., 4., 3., 1., 0., 4., 2., 1.,\n",
" 1., 2., 0., 1., 2., 0., 0., 0., 0., 0., 0., 0., 0., 0.])],\n",
" array([-4.38016306, -4.16349257, -3.94682209, -3.7301516 , -3.51348112,\n",
" -3.29681063, -3.08014015, -2.86346966, -2.64679917, -2.43012869,\n",
" -2.2134582 , -1.99678772, -1.78011723, -1.56344675, -1.34677626,\n",
" -1.13010578, -0.91343529, -0.69676481, -0.48009432, -0.26342383,\n",
" -0.04675335, 0.16991714, 0.38658762, 0.60325811, 0.81992859,\n",
" 1.03659908, 1.25326956, 1.46994005, 1.68661053, 1.90328102,\n",
" 2.11995151, 2.33662199, 2.55329248, 2.76996296, 2.98663345,\n",
" 3.20330393, 3.41997442, 3.6366449 , 3.85331539, 4.06998587,\n",
" 4.28665636]),\n",
" <a list of 42 Lists of Patches objects>)"
]
},
"execution_count": 173,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x20333dca160>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"pred_ys = []\n",
"for i in range(5):\n",
" train_x, train_y, test_x, test_y = get_dataset(i, x0, y0)\n",
" train_x = np.log(train_x+1)[:, 1:]\n",
" train_y = np.log(train_y+1)\n",
" test_x = np.log(test_x+1)[:, 1:]\n",
" test_y = np.log(test_y+1)\n",
" kr = Lasso(alpha=0.01, normalize=True)\n",
" kr.fit(train_x, train_y)\n",
" pred_train_y = kr.predict(train_x)\n",
" pred_test_y = kr.predict(test_x)\n",
" print('train:', np.mean((train_y.flatten()-pred_train_y)**2))\n",
" print('test:', np.mean((test_y.flatten()-pred_test_y)**2))\n",
" pred_y = kr.predict(np.log(x0[:,1:]+1))\n",
" pred_ys.append(pred_y)\n",
"plt.hist(np.mean(pred_ys, axis=0)-np.log(y0+1), bins=40)"
]
},
{
"cell_type": "code",
"execution_count": 193,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"c:\\program files\\python36\\lib\\site-packages\\sklearn\\feature_selection\\univariate_selection.py:109: RuntimeWarning: invalid value encountered in true_divide\n",
" msw = sswn / float(dfwn)\n"
]
},
{
"data": {
"text/plain": [
"SelectPercentile(percentile=10,\n",
" score_func=<function f_classif at 0x0000020314DB8268>)"
]
},
"execution_count": 193,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn.feature_selection import SelectPercentile\n",
"sp = SelectPercentile()\n",
"sp.fit(x, y.flatten())"
]
},
{
"cell_type": "code",
"execution_count": 194,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"c:\\program files\\python36\\lib\\site-packages\\sklearn\\feature_selection\\base.py:80: UserWarning: No features were selected: either the data is too noisy or the selection test too strict.\n",
" UserWarning)\n"
]
},
{
"data": {
"text/plain": [
"array([], shape=(84, 0), dtype=float64)"
]
},
"execution_count": 194,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sp.transform(x)"
]
},
{
"cell_type": "code",
"execution_count": 196,
"metadata": {},
"outputs": [
{
"ename": "ModuleNotFoundError",
"evalue": "No module named 'google.colab'",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32m<ipython-input-196-d1325bdb9590>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[1;32mfrom\u001b[0m \u001b[0mgoogle\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcolab\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mauth\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[0mauth\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mauthenticate_user\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mgspread\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 5\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0moauth2client\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mclient\u001b[0m \u001b[1;32mimport\u001b[0m \u001b[0mGoogleCredentials\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;31mModuleNotFoundError\u001b[0m: No module named 'google.colab'"
]
}
],
"source": [
"from google.colab import auth\n",
"auth.authenticate_user()\n",
"\n",
"import gspread\n",
"from oauth2client.client import GoogleCredentials\n",
"\n",
"gc = gspread.authorize(GoogleCredentials.get_application_default())\n",
"\n",
"worksheet = gc.open('ねし指数機械学習への道').worksheets()[1]\n",
"\n",
"# get_all_values gives a list of rows.\n",
"rows = worksheet.get_all_values()\n",
"print(rows)\n",
"\n",
"# Convert to a DataFrame and render.\n",
"import pandas as pd\n",
"pd.DataFrame.from_records(rows)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"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.6.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment