Skip to content

Instantly share code, notes, and snippets.

@ImagawaKosuke
Created November 7, 2022 06:56
Show Gist options
  • Save ImagawaKosuke/99fcba7cc6a5ead0e30284500d1e0fb4 to your computer and use it in GitHub Desktop.
Save ImagawaKosuke/99fcba7cc6a5ead0e30284500d1e0fb4 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "0e2cd3ce",
"metadata": {},
"outputs": [],
"source": [
"#ライブラリのインポート\n",
"import numpy as np\n",
"from matplotlib import pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "f9b96a90",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'C:\\\\Users\\\\kosuk\\\\デスクトップ\\\\competition\\\\FirstComp'"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import os\n",
"current_dir = os.getcwd()\n",
"current_dir"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "254d294e",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>mpg</th>\n",
" <th>cylinders</th>\n",
" <th>displacement</th>\n",
" <th>horsepower</th>\n",
" <th>weight</th>\n",
" <th>acceleration</th>\n",
" <th>model year</th>\n",
" <th>origin</th>\n",
" <th>car name</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0</td>\n",
" <td>29.0</td>\n",
" <td>4</td>\n",
" <td>135.0</td>\n",
" <td>84.00</td>\n",
" <td>2525.0</td>\n",
" <td>16.0</td>\n",
" <td>82</td>\n",
" <td>1</td>\n",
" <td>dodge aries se</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>3</td>\n",
" <td>31.9</td>\n",
" <td>4</td>\n",
" <td>89.0</td>\n",
" <td>71.00</td>\n",
" <td>1925.0</td>\n",
" <td>14.0</td>\n",
" <td>79</td>\n",
" <td>2</td>\n",
" <td>vw rabbit custom</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>9</td>\n",
" <td>19.0</td>\n",
" <td>6</td>\n",
" <td>156.0</td>\n",
" <td>108.0</td>\n",
" <td>2930.0</td>\n",
" <td>15.5</td>\n",
" <td>76</td>\n",
" <td>3</td>\n",
" <td>toyota mark ii</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>11</td>\n",
" <td>28.0</td>\n",
" <td>4</td>\n",
" <td>90.0</td>\n",
" <td>75.00</td>\n",
" <td>2125.0</td>\n",
" <td>14.5</td>\n",
" <td>74</td>\n",
" <td>1</td>\n",
" <td>dodge colt</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>13</td>\n",
" <td>37.7</td>\n",
" <td>4</td>\n",
" <td>89.0</td>\n",
" <td>62.00</td>\n",
" <td>2050.0</td>\n",
" <td>17.3</td>\n",
" <td>81</td>\n",
" <td>3</td>\n",
" <td>toyota tercel</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>194</th>\n",
" <td>384</td>\n",
" <td>40.8</td>\n",
" <td>4</td>\n",
" <td>85.0</td>\n",
" <td>65.00</td>\n",
" <td>2110.0</td>\n",
" <td>19.2</td>\n",
" <td>80</td>\n",
" <td>3</td>\n",
" <td>datsun 210</td>\n",
" </tr>\n",
" <tr>\n",
" <th>195</th>\n",
" <td>385</td>\n",
" <td>20.2</td>\n",
" <td>8</td>\n",
" <td>302.0</td>\n",
" <td>139.0</td>\n",
" <td>3570.0</td>\n",
" <td>12.8</td>\n",
" <td>78</td>\n",
" <td>1</td>\n",
" <td>mercury monarch ghia</td>\n",
" </tr>\n",
" <tr>\n",
" <th>196</th>\n",
" <td>387</td>\n",
" <td>16.0</td>\n",
" <td>8</td>\n",
" <td>304.0</td>\n",
" <td>150.0</td>\n",
" <td>3433.0</td>\n",
" <td>12.0</td>\n",
" <td>70</td>\n",
" <td>1</td>\n",
" <td>amc rebel sst</td>\n",
" </tr>\n",
" <tr>\n",
" <th>197</th>\n",
" <td>395</td>\n",
" <td>43.4</td>\n",
" <td>4</td>\n",
" <td>90.0</td>\n",
" <td>48.00</td>\n",
" <td>2335.0</td>\n",
" <td>23.7</td>\n",
" <td>80</td>\n",
" <td>2</td>\n",
" <td>vw dasher (diesel)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>198</th>\n",
" <td>396</td>\n",
" <td>26.0</td>\n",
" <td>4</td>\n",
" <td>98.0</td>\n",
" <td>90.00</td>\n",
" <td>2265.0</td>\n",
" <td>15.5</td>\n",
" <td>73</td>\n",
" <td>2</td>\n",
" <td>fiat 124 sport coupe</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>199 rows × 10 columns</p>\n",
"</div>"
],
"text/plain": [
" id mpg cylinders displacement horsepower weight acceleration \\\n",
"0 0 29.0 4 135.0 84.00 2525.0 16.0 \n",
"1 3 31.9 4 89.0 71.00 1925.0 14.0 \n",
"2 9 19.0 6 156.0 108.0 2930.0 15.5 \n",
"3 11 28.0 4 90.0 75.00 2125.0 14.5 \n",
"4 13 37.7 4 89.0 62.00 2050.0 17.3 \n",
".. ... ... ... ... ... ... ... \n",
"194 384 40.8 4 85.0 65.00 2110.0 19.2 \n",
"195 385 20.2 8 302.0 139.0 3570.0 12.8 \n",
"196 387 16.0 8 304.0 150.0 3433.0 12.0 \n",
"197 395 43.4 4 90.0 48.00 2335.0 23.7 \n",
"198 396 26.0 4 98.0 90.00 2265.0 15.5 \n",
"\n",
" model year origin car name \n",
"0 82 1 dodge aries se \n",
"1 79 2 vw rabbit custom \n",
"2 76 3 toyota mark ii \n",
"3 74 1 dodge colt \n",
"4 81 3 toyota tercel \n",
".. ... ... ... \n",
"194 80 3 datsun 210 \n",
"195 78 1 mercury monarch ghia \n",
"196 70 1 amc rebel sst \n",
"197 80 2 vw dasher (diesel) \n",
"198 73 2 fiat 124 sport coupe \n",
"\n",
"[199 rows x 10 columns]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"data = os.path.join(current_dir,\"datas\")\n",
"m_train = pd.read_csv(os.path.join(data, \"train.tsv\"),delimiter='\\t')\n",
"m_train"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "3e5f899f",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"id 0\n",
"mpg 0\n",
"cylinders 0\n",
"displacement 0\n",
"horsepower 0\n",
"weight 0\n",
"acceleration 0\n",
"model year 0\n",
"origin 0\n",
"car name 0\n",
"dtype: int64"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"m_train.isnull().sum()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "7d09de55",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"id int64\n",
"mpg float64\n",
"cylinders int64\n",
"displacement float64\n",
"horsepower object\n",
"weight float64\n",
"acceleration float64\n",
"model year int64\n",
"origin int64\n",
"car name object\n",
"dtype: object"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#データの型を確認\n",
"m_train.dtypes"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "4a45e6cc",
"metadata": {},
"outputs": [],
"source": [
"#重回帰分析を行う\n",
"import seaborn as sns\n",
"from sklearn.linear_model import LinearRegression"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "ddab7ef3",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<seaborn.axisgrid.PairGrid at 0x2ecdd7bf640>"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 2160x360 with 6 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"#相関を求める\n",
"sns.pairplot(m_train, height=5, markers=\"+\", x_vars=[\"horsepower\", \"cylinders\", \"displacement\", \"weight\", \"acceleration\", \"model year\"], y_vars=[\"mpg\"])\n"
]
},
{
"cell_type": "markdown",
"id": "f48b7174",
"metadata": {},
"source": [
"排気量と重量、加速度、年式にガソリン1ガロンあたりの走行距離に相関があることが分かったので、説明変数として4つ使う。"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "0ba74c42",
"metadata": {},
"outputs": [],
"source": [
"#新しくデータフレームを作成する\n",
"X = pd.DataFrame()\n",
"X['cylinders'] = m_train['cylinders']\n",
"X['displacement'] = m_train['displacement']\n",
"X['weight'] = m_train['weight']\n",
"X['model year'] = m_train['model year']\n",
"Y = m_train['mpg']"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "a97fdab3",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" cylinders displacement weight model year\n",
"0 4 135.0 2525.0 82\n",
"1 4 89.0 1925.0 79\n",
"2 6 156.0 2930.0 76\n",
"3 4 90.0 2125.0 74\n",
"4 4 89.0 2050.0 81\n",
".. ... ... ... ...\n",
"194 4 85.0 2110.0 80\n",
"195 8 302.0 3570.0 78\n",
"196 8 304.0 3433.0 70\n",
"197 4 90.0 2335.0 80\n",
"198 4 98.0 2265.0 73\n",
"\n",
"[199 rows x 4 columns] 0 29.0\n",
"1 31.9\n",
"2 19.0\n",
"3 28.0\n",
"4 37.7\n",
" ... \n",
"194 40.8\n",
"195 20.2\n",
"196 16.0\n",
"197 43.4\n",
"198 26.0\n",
"Name: mpg, Length: 199, dtype: float64\n"
]
}
],
"source": [
"print(X,Y)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "becaf559",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"LinearRegression()"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#傾きと切片を求める\n",
"linear_regression = LinearRegression()\n",
"linear_regression.fit(X,Y)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "087c3a1d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[-0.23905993 -0.00154163 -0.00626588 0.76239545]\n"
]
}
],
"source": [
"#傾きの確認\n",
"A = linear_regression.coef_\n",
"print(A)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "b7a3929a",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"-14.142891763156591\n"
]
}
],
"source": [
"#切片の確認\n",
"B = linear_regression.intercept_\n",
"print(B)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "97240187",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>id</th>\n",
" <th>cylinders</th>\n",
" <th>displacement</th>\n",
" <th>horsepower</th>\n",
" <th>weight</th>\n",
" <th>acceleration</th>\n",
" <th>model year</th>\n",
" <th>origin</th>\n",
" <th>car name</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>145.0</td>\n",
" <td>76.00</td>\n",
" <td>3160.0</td>\n",
" <td>19.6</td>\n",
" <td>81</td>\n",
" <td>2</td>\n",
" <td>volvo diesel</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>250.0</td>\n",
" <td>98.00</td>\n",
" <td>3525.0</td>\n",
" <td>19.0</td>\n",
" <td>77</td>\n",
" <td>1</td>\n",
" <td>ford granada</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>4</td>\n",
" <td>4</td>\n",
" <td>119.0</td>\n",
" <td>92.00</td>\n",
" <td>2434.0</td>\n",
" <td>15.0</td>\n",
" <td>80</td>\n",
" <td>3</td>\n",
" <td>datsun 510 hatchback</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>5</td>\n",
" <td>6</td>\n",
" <td>258.0</td>\n",
" <td>110.0</td>\n",
" <td>2962.0</td>\n",
" <td>13.5</td>\n",
" <td>71</td>\n",
" <td>1</td>\n",
" <td>amc hornet sportabout (sw)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>6</td>\n",
" <td>4</td>\n",
" <td>97.0</td>\n",
" <td>88.00</td>\n",
" <td>2100.0</td>\n",
" <td>16.5</td>\n",
" <td>72</td>\n",
" <td>3</td>\n",
" <td>toyota corolla 1600 (sw)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>194</th>\n",
" <td>391</td>\n",
" <td>4</td>\n",
" <td>114.0</td>\n",
" <td>91.00</td>\n",
" <td>2582.0</td>\n",
" <td>14.0</td>\n",
" <td>73</td>\n",
" <td>2</td>\n",
" <td>audi 100ls</td>\n",
" </tr>\n",
" <tr>\n",
" <th>195</th>\n",
" <td>392</td>\n",
" <td>4</td>\n",
" <td>156.0</td>\n",
" <td>105.0</td>\n",
" <td>2800.0</td>\n",
" <td>14.4</td>\n",
" <td>80</td>\n",
" <td>1</td>\n",
" <td>dodge colt</td>\n",
" </tr>\n",
" <tr>\n",
" <th>196</th>\n",
" <td>393</td>\n",
" <td>4</td>\n",
" <td>111.0</td>\n",
" <td>80.00</td>\n",
" <td>2155.0</td>\n",
" <td>14.8</td>\n",
" <td>77</td>\n",
" <td>1</td>\n",
" <td>buick opel isuzu deluxe</td>\n",
" </tr>\n",
" <tr>\n",
" <th>197</th>\n",
" <td>394</td>\n",
" <td>8</td>\n",
" <td>400.0</td>\n",
" <td>180.0</td>\n",
" <td>4220.0</td>\n",
" <td>11.1</td>\n",
" <td>77</td>\n",
" <td>1</td>\n",
" <td>pontiac grand prix lj</td>\n",
" </tr>\n",
" <tr>\n",
" <th>198</th>\n",
" <td>397</td>\n",
" <td>4</td>\n",
" <td>97.0</td>\n",
" <td>78.00</td>\n",
" <td>1940.0</td>\n",
" <td>14.5</td>\n",
" <td>77</td>\n",
" <td>2</td>\n",
" <td>volkswagen rabbit custom</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>199 rows × 9 columns</p>\n",
"</div>"
],
"text/plain": [
" id cylinders displacement horsepower weight acceleration \\\n",
"0 1 6 145.0 76.00 3160.0 19.6 \n",
"1 2 6 250.0 98.00 3525.0 19.0 \n",
"2 4 4 119.0 92.00 2434.0 15.0 \n",
"3 5 6 258.0 110.0 2962.0 13.5 \n",
"4 6 4 97.0 88.00 2100.0 16.5 \n",
".. ... ... ... ... ... ... \n",
"194 391 4 114.0 91.00 2582.0 14.0 \n",
"195 392 4 156.0 105.0 2800.0 14.4 \n",
"196 393 4 111.0 80.00 2155.0 14.8 \n",
"197 394 8 400.0 180.0 4220.0 11.1 \n",
"198 397 4 97.0 78.00 1940.0 14.5 \n",
"\n",
" model year origin car name \n",
"0 81 2 volvo diesel \n",
"1 77 1 ford granada \n",
"2 80 3 datsun 510 hatchback \n",
"3 71 1 amc hornet sportabout (sw) \n",
"4 72 3 toyota corolla 1600 (sw) \n",
".. ... ... ... \n",
"194 73 2 audi 100ls \n",
"195 80 1 dodge colt \n",
"196 77 1 buick opel isuzu deluxe \n",
"197 77 1 pontiac grand prix lj \n",
"198 77 2 volkswagen rabbit custom \n",
"\n",
"[199 rows x 9 columns]"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"data = os.path.join(current_dir,\"datas\")\n",
"m_test = pd.read_csv(os.path.join(data, \"test.tsv\"),delimiter='\\t')\n",
"m_test"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "ee2028dc",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0 26.153075\n",
"1 20.654577\n",
"2 30.457908\n",
"3 19.595560\n",
"4 26.485463\n",
" ... \n",
"194 24.201498\n",
"195 28.107557\n",
"196 29.931234\n",
"197 15.590429\n",
"198 31.299980\n",
"Name: mpg, Length: 199, dtype: float64"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"m_test['mpg'] = m_test['cylinders']*A[0] + m_test['displacement']*A[1] + m_test['weight']*A[2] + m_test['model year']*A[3] + B\n",
"m_test['mpg']"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "7f7cbd26",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'C:\\\\Users\\\\kosuk\\\\デスクトップ\\\\competition\\\\FirstComp\\\\Output'"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"outdata = os.path.join(current_dir,\"Output\")\n",
"outdata"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "8938b590",
"metadata": {},
"outputs": [],
"source": [
"m_test[['id', 'mpg']].to_csv(os.path.join(outdata,'submit_imakoh.csv'), header=False, index=False)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"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.12"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment