Initial commit
This commit is contained in:
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
**/__pycache__/*
|
||||
.ipynb_checkpoints/*
|
||||
166426
brfss_2020.csv
Normal file
166426
brfss_2020.csv
Normal file
File diff suppressed because it is too large
Load Diff
404
lab_estimation.ipynb
Normal file
404
lab_estimation.ipynb
Normal file
@@ -0,0 +1,404 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "cell-001",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"# Estimating Income from Survey Data\n",
|
||||
"\n",
|
||||
"This notebook is the second half of the Estimation lab. In the first half, you fit a\n",
|
||||
"line to data by hand using an interactive toy, building intuition for **parameters**,\n",
|
||||
"**loss**, and **training**.\n",
|
||||
"\n",
|
||||
"Here, you'll apply the same ideas with code, on two datasets:\n",
|
||||
"\n",
|
||||
"- **Pok\u00e9mon stats** \u2014 the dataset from the Pok\u00e9mon lab, used here for **demos**. If\n",
|
||||
" you haven't seen this dataset before, it's a row per Pok\u00e9mon with battle stats like\n",
|
||||
" `attack` and `total` (the sum of all six stats).\n",
|
||||
"- **BRFSS** \u2014 the same health survey dataset from the Pok\u00e9mon lab \u2014 used for **your\n",
|
||||
" turn** sections, where you repeat each technique and dig further.\n",
|
||||
"\n",
|
||||
"Each demo introduces one idea using Pok\u00e9mon; each \"your turn\" asks you to apply it to\n",
|
||||
"BRFSS. Record your results and write your answers in `questions.md`, not here\u2014the\n",
|
||||
"checkpoints on the lab page tell you exactly what to answer and when."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"id": "cell-002",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import pandas as pd\n",
|
||||
"import numpy as np\n",
|
||||
"import matplotlib.pyplot as plt\n",
|
||||
"import seaborn as sns\n",
|
||||
"from sklearn.linear_model import LinearRegression\n",
|
||||
"from sklearn.model_selection import train_test_split\n",
|
||||
"from plotting import plot_regression\n",
|
||||
"\n",
|
||||
"%matplotlib inline\n",
|
||||
"plt.rcParams['figure.figsize'] = (6, 4)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "cell-003",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"`scikit-learn` actually has a built-in function for this, but it's worth\n",
|
||||
"seeing how it works\u2014the same function described on the lab page:"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"id": "cell-004",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"def root_mean_squared_error(y_true, y_pred):\n",
|
||||
" errors = y_true - y_pred\n",
|
||||
" squared_errors = errors ** 2\n",
|
||||
" mean_squared_error = squared_errors.mean()\n",
|
||||
" return mean_squared_error ** 0.5"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"id": "cell-005",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"pokemon = pd.read_csv(\"pokemon.csv\")\n",
|
||||
"people = pd.read_csv(\"brfss_2020.csv\")\n",
|
||||
"print(f\"pokemon: {pokemon.shape}, people: {people.shape}\")\n",
|
||||
"pokemon.head(3)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "cell-006",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Column reference\n",
|
||||
"\n",
|
||||
"**pokemon** (one row per Pok\u00e9mon):\n",
|
||||
"\n",
|
||||
"| Column | Description |\n",
|
||||
"|--------|-------------|\n",
|
||||
"| `type`, `subtype` | Elemental type(s), e.g. `Grass`, `Poison` |\n",
|
||||
"| `total` | Sum of all six stats below |\n",
|
||||
"| `hp`, `attack`, `defense`, `special_attack`, `special_defense`, `speed` | Battle stats |\n",
|
||||
"| `generation` | Which numbered generation of games introduced this Pok\u00e9mon (1-6) |\n",
|
||||
"| `legendary` | Whether this Pok\u00e9mon is Legendary (True/False) |\n",
|
||||
"\n",
|
||||
"**people** (one row per BRFSS survey respondent):\n",
|
||||
"\n",
|
||||
"| Column | Description |\n",
|
||||
"|--------|-------------|\n",
|
||||
"| `age` | Age band (18, 25, 35, 45, 55, or 65 meaning 65+) |\n",
|
||||
"| `sex` | `male` or `female` |\n",
|
||||
"| `income` | Annual income band, 1 (under $10k) to 8 (over $75k) |\n",
|
||||
"| `education` | Highest education level, 1 (did not graduate high school) to 4 (college graduate) |\n",
|
||||
"| `sexual_orientation` | `heterosexual`, `homosexual`, `bisexual`, or `other` |\n",
|
||||
"| `health` | Self-reported general health, 1 (poor) to 5 (excellent) |\n",
|
||||
"| `no_doctor` | Couldn't afford to see a doctor in the last year (True/False) |\n",
|
||||
"| `exercise` | Did any exercise in the last 30 days (True/False) |\n",
|
||||
"| `sleep` | Average hours of sleep per night |"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "cell-007",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 1. Fitting a line to one predictor\n",
|
||||
"\n",
|
||||
"We'll reuse the same `fit`/`predict` pattern from the lab intro, but now `scikit-learn`\n",
|
||||
"finds the parameters instead of you nudging them by hand. The demo below splits the\n",
|
||||
"data, fits a line, and reports its slope, intercept, and **RMSE** (root mean squared\n",
|
||||
"error) on both a training set and a held-out test set.\n",
|
||||
"\n",
|
||||
"RMSE is the same \"total squared error\" you minimized in the toy \u2014 averaged over all\n",
|
||||
"points instead of summed, then square-rooted so it's back in the original units of\n",
|
||||
"`response`. A model with RMSE of 8 is, roughly, \"off by about 8 on a typical prediction.\"\n",
|
||||
"\n",
|
||||
"`plot_regression(X, y, model)`, imported from `plotting.py`, draws the scatterplot and\n",
|
||||
"the model's line for you. It picks reasonable defaults for marker size, opacity, and\n",
|
||||
"jitter based on how much data you're plotting\u2014but if a particular plot still comes out\n",
|
||||
"hard to read, you can override any of them: `plot_regression(X, y, model, size=10,\n",
|
||||
"opacity=0.1, jitter=0.3)`. All three are purely cosmetic: they change how the plot\n",
|
||||
"looks, never the data the model was trained on. You won't need to write any plotting\n",
|
||||
"code yourself in this notebook."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"id": "cell-008",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"# Demo: predict a Pokemon's total stats from its attack stat\n",
|
||||
"X = pokemon[[\"attack\"]].astype(float)\n",
|
||||
"y = pokemon[\"total\"]\n",
|
||||
"\n",
|
||||
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n",
|
||||
"\n",
|
||||
"model = LinearRegression()\n",
|
||||
"model.fit(X_train, y_train)\n",
|
||||
"\n",
|
||||
"train_rmse = root_mean_squared_error(y_train, model.predict(X_train))\n",
|
||||
"test_rmse = root_mean_squared_error(y_test, model.predict(X_test))\n",
|
||||
"print(f\"slope: {model.coef_[0]:.3f}\")\n",
|
||||
"print(f\"intercept: {model.intercept_:.3f}\")\n",
|
||||
"print(f\"train RMSE: {train_rmse:.3f}\")\n",
|
||||
"print(f\"test RMSE: {test_rmse:.3f}\")\n",
|
||||
"\n",
|
||||
"plot_regression(X, y, model)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "cell-009",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Your turn\n",
|
||||
"\n",
|
||||
"Repeat the same steps \u2014 split, fit, predict, score, and plot \u2014 on `people`, to predict\n",
|
||||
"`income` from:\n",
|
||||
"\n",
|
||||
"1. `education`\n",
|
||||
"2. `health`\n",
|
||||
"3. A predictor of your choice\n",
|
||||
"\n",
|
||||
"Record your results and answer the questions about them in `questions.md`."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"id": "cell-010",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"# Your turn: education -> income\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"id": "cell-011",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"# Your turn: health -> income\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"id": "cell-012",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"# Your turn: a predictor of your choice -> income\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "cell-013",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 2. Binary predictors: a coefficient is a group difference\n",
|
||||
"\n",
|
||||
"`legendary` only takes two values, `True` and `False`. There's no \"in between\" \u2014 so\n",
|
||||
"the slope for a binary predictor isn't a rate of change, it's the model's predicted\n",
|
||||
"*difference between the two groups*."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"id": "cell-014",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"# Demo: legendary status -> total stats\n",
|
||||
"pokemon[\"legendary_int\"] = pokemon[\"legendary\"].astype(int)\n",
|
||||
"X = pokemon[[\"legendary_int\"]]\n",
|
||||
"y = pokemon[\"total\"]\n",
|
||||
"\n",
|
||||
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n",
|
||||
"\n",
|
||||
"model = LinearRegression()\n",
|
||||
"model.fit(X_train, y_train)\n",
|
||||
"\n",
|
||||
"train_rmse = root_mean_squared_error(y_train, model.predict(X_train))\n",
|
||||
"test_rmse = root_mean_squared_error(y_test, model.predict(X_test))\n",
|
||||
"print(f\"slope: {model.coef_[0]:.3f}\")\n",
|
||||
"print(f\"intercept: {model.intercept_:.3f}\")\n",
|
||||
"print(f\"train RMSE: {train_rmse:.3f}\")\n",
|
||||
"print(f\"test RMSE: {test_rmse:.3f}\")\n",
|
||||
"\n",
|
||||
"plot_regression(X, y, model)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "cell-015",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"### Your turn\n",
|
||||
"\n",
|
||||
"`people` has two binary columns: `exercise` and `no_doctor`. Pick one, cast it to\n",
|
||||
"`int`, and repeat the same steps to predict `income` from it. Record your results and\n",
|
||||
"answer the questions about it in `questions.md`."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"id": "cell-016",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"# Your turn: exercise or no_doctor -> income\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "cell-017",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 3. Ordinal predictors: an assumption worth naming\n",
|
||||
"\n",
|
||||
"`generation` ranks Pok\u00e9mon games in the order they were released \u2014 it's an **ordinal**\n",
|
||||
"label, not a true measurement. Treating it as a number assumes each step (1\u21922, 2\u21923, \u2026)\n",
|
||||
"represents the same-sized \"distance,\" which may not be true at all."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"id": "cell-018",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"# Demo: generation -> total stats\n",
|
||||
"X = pokemon[[\"generation\"]].astype(float)\n",
|
||||
"y = pokemon[\"total\"]\n",
|
||||
"\n",
|
||||
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n",
|
||||
"\n",
|
||||
"model = LinearRegression()\n",
|
||||
"model.fit(X_train, y_train)\n",
|
||||
"\n",
|
||||
"train_rmse = root_mean_squared_error(y_train, model.predict(X_train))\n",
|
||||
"test_rmse = root_mean_squared_error(y_test, model.predict(X_test))\n",
|
||||
"print(f\"slope: {model.coef_[0]:.3f}\")\n",
|
||||
"print(f\"intercept: {model.intercept_:.3f}\")\n",
|
||||
"print(f\"train RMSE: {train_rmse:.3f}\")\n",
|
||||
"print(f\"test RMSE: {test_rmse:.3f}\")\n",
|
||||
"\n",
|
||||
"plot_regression(X, y, model)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "cell-019",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Notice the test RMSE here is barely better than just guessing the mean every time \u2014\n",
|
||||
"generation tells you almost nothing about total stats.\n",
|
||||
"\n",
|
||||
"`education` and `health` in the BRFSS data are ordinal in the same way `generation`\n",
|
||||
"is: the numbers encode an order, not an evenly-spaced scale. `age`, on the other hand,\n",
|
||||
"uses the actual lower bound of each band in years, which is a much more defensible\n",
|
||||
"number to treat as continuous. Answer the question about this in `questions.md`."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "cell-020",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## 4. Multiple regression and overfitting\n",
|
||||
"\n",
|
||||
"You can give a model more than one predictor at once."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"id": "cell-021",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"# Demo: predict total stats from three of its component stats\n",
|
||||
"predictors = [\"attack\", \"defense\", \"speed\"]\n",
|
||||
"X = pokemon[predictors].astype(float)\n",
|
||||
"y = pokemon[\"total\"]\n",
|
||||
"\n",
|
||||
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n",
|
||||
"multi_model = LinearRegression()\n",
|
||||
"multi_model.fit(X_train, y_train)\n",
|
||||
"\n",
|
||||
"train_rmse = root_mean_squared_error(y_train, multi_model.predict(X_train))\n",
|
||||
"test_rmse = root_mean_squared_error(y_test, multi_model.predict(X_test))\n",
|
||||
"print(f\"train RMSE: {train_rmse:.3f}\")\n",
|
||||
"print(f\"test RMSE: {test_rmse:.3f}\")\n",
|
||||
"print(dict(zip(predictors, multi_model.coef_)))"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"id": "cell-022",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"On a *training* set, RMSE can only go down (or stay the same) as you add predictors \u2014\n",
|
||||
"the model has more information to work with. That doesn't mean the model is actually\n",
|
||||
"better: it might be **overfitting**, fitting noise specific to the training data rather\n",
|
||||
"than a pattern that generalizes. Comparing training RMSE to test RMSE is how you check.\n",
|
||||
"\n",
|
||||
"### Your turn\n",
|
||||
"\n",
|
||||
"So far you've predicted `income` from things like `education` and `health`. For this\n",
|
||||
"multiple regression, predict `health` instead, from `education`, `income`,\n",
|
||||
"`exercise`, `age`, and `no_doctor`\u2014`health` moves from predictor to target, and\n",
|
||||
"`income` takes its place as a predictor. Predicting `health` from things you can\n",
|
||||
"observe is arguably more realistic than predicting `income`: income is often public\n",
|
||||
"record, but health is self-reported, so a model that estimates it from observable\n",
|
||||
"behaviors has a more obvious real-world use. Record your results and answer the\n",
|
||||
"questions about it in `questions.md`."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"id": "cell-023",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"# Your turn: multiple regression on health\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"name": "python",
|
||||
"version": "3.11"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 5
|
||||
}
|
||||
79
plotting.py
Normal file
79
plotting.py
Normal file
@@ -0,0 +1,79 @@
|
||||
import numpy as np
|
||||
import pandas as pd
|
||||
import matplotlib.pyplot as plt
|
||||
import seaborn as sns
|
||||
|
||||
|
||||
def _is_discrete(values, max_unique=30):
|
||||
return values.nunique() <= max_unique
|
||||
|
||||
|
||||
def _jittered(values, fraction):
|
||||
gaps = np.diff(np.sort(values.unique()))
|
||||
gap = gaps.min() if len(gaps) > 0 else 1
|
||||
noise = np.random.normal(0, gap * fraction, size=len(values))
|
||||
return values + noise
|
||||
|
||||
|
||||
def _maybe_jittered(values, jitter):
|
||||
if jitter is False:
|
||||
return values
|
||||
if jitter is None:
|
||||
return _jittered(values, 0.15) if _is_discrete(values) else values
|
||||
fraction = 0.15 if jitter is True else jitter
|
||||
return _jittered(values, fraction)
|
||||
|
||||
|
||||
def _default_size(n):
|
||||
if n > 50000:
|
||||
return 6
|
||||
if n > 5000:
|
||||
return 15
|
||||
if n > 500:
|
||||
return 25
|
||||
return 40
|
||||
|
||||
|
||||
def _default_opacity(n):
|
||||
if n > 50000:
|
||||
return 0.05
|
||||
if n > 5000:
|
||||
return 0.15
|
||||
if n > 500:
|
||||
return 0.3
|
||||
return 0.5
|
||||
|
||||
|
||||
def _predicted_line(model, x, column):
|
||||
line_x = np.linspace(x.min(), x.max(), 100)
|
||||
line_X = pd.DataFrame({column: line_x})
|
||||
return line_x, model.predict(line_X)
|
||||
|
||||
|
||||
def plot_regression(X, y, model, size=None, opacity=None, jitter=None):
|
||||
"""Scatterplot of a single predictor against y, with the model's predicted line."""
|
||||
column = X.columns[0]
|
||||
x = X[column]
|
||||
n = len(x)
|
||||
|
||||
if size is None:
|
||||
size = _default_size(n)
|
||||
if opacity is None:
|
||||
opacity = _default_opacity(n)
|
||||
|
||||
plot_x = _maybe_jittered(x, jitter)
|
||||
plot_y = _maybe_jittered(y, jitter)
|
||||
sns.scatterplot(x=plot_x, y=plot_y, s=size, alpha=opacity, edgecolor="none")
|
||||
|
||||
if _is_discrete(x):
|
||||
plt.xticks(sorted(x.unique()))
|
||||
if _is_discrete(y):
|
||||
plt.yticks(sorted(y.unique()))
|
||||
|
||||
line_x, line_y = _predicted_line(model, x, column)
|
||||
plt.plot(line_x, line_y, color="crimson")
|
||||
|
||||
plt.xlabel(column)
|
||||
plt.ylabel(y.name)
|
||||
plt.title(f"{y.name} vs {column}")
|
||||
plt.show()
|
||||
801
pokemon.csv
Normal file
801
pokemon.csv
Normal file
@@ -0,0 +1,801 @@
|
||||
name,type,subtype,total,hp,attack,defense,special_attack,special_defense,speed,generation,legendary
|
||||
Bulbasaur,Grass,Poison,318,45,49,49,65,65,45,1,False
|
||||
Ivysaur,Grass,Poison,405,60,62,63,80,80,60,1,False
|
||||
Venusaur,Grass,Poison,525,80,82,83,100,100,80,1,False
|
||||
VenusaurMega Venusaur,Grass,Poison,625,80,100,123,122,120,80,1,False
|
||||
Charmander,Fire,,309,39,52,43,60,50,65,1,False
|
||||
Charmeleon,Fire,,405,58,64,58,80,65,80,1,False
|
||||
Charizard,Fire,Flying,534,78,84,78,109,85,100,1,False
|
||||
CharizardMega Charizard X,Fire,Dragon,634,78,130,111,130,85,100,1,False
|
||||
CharizardMega Charizard Y,Fire,Flying,634,78,104,78,159,115,100,1,False
|
||||
Squirtle,Water,,314,44,48,65,50,64,43,1,False
|
||||
Wartortle,Water,,405,59,63,80,65,80,58,1,False
|
||||
Blastoise,Water,,530,79,83,100,85,105,78,1,False
|
||||
BlastoiseMega Blastoise,Water,,630,79,103,120,135,115,78,1,False
|
||||
Caterpie,Bug,,195,45,30,35,20,20,45,1,False
|
||||
Metapod,Bug,,205,50,20,55,25,25,30,1,False
|
||||
Butterfree,Bug,Flying,395,60,45,50,90,80,70,1,False
|
||||
Weedle,Bug,Poison,195,40,35,30,20,20,50,1,False
|
||||
Kakuna,Bug,Poison,205,45,25,50,25,25,35,1,False
|
||||
Beedrill,Bug,Poison,395,65,90,40,45,80,75,1,False
|
||||
BeedrillMega Beedrill,Bug,Poison,495,65,150,40,15,80,145,1,False
|
||||
Pidgey,Normal,Flying,251,40,45,40,35,35,56,1,False
|
||||
Pidgeotto,Normal,Flying,349,63,60,55,50,50,71,1,False
|
||||
Pidgeot,Normal,Flying,479,83,80,75,70,70,101,1,False
|
||||
PidgeotMega Pidgeot,Normal,Flying,579,83,80,80,135,80,121,1,False
|
||||
Rattata,Normal,,253,30,56,35,25,35,72,1,False
|
||||
Raticate,Normal,,413,55,81,60,50,70,97,1,False
|
||||
Spearow,Normal,Flying,262,40,60,30,31,31,70,1,False
|
||||
Fearow,Normal,Flying,442,65,90,65,61,61,100,1,False
|
||||
Ekans,Poison,,288,35,60,44,40,54,55,1,False
|
||||
Arbok,Poison,,438,60,85,69,65,79,80,1,False
|
||||
Pikachu,Electric,,320,35,55,40,50,50,90,1,False
|
||||
Raichu,Electric,,485,60,90,55,90,80,110,1,False
|
||||
Sandshrew,Ground,,300,50,75,85,20,30,40,1,False
|
||||
Sandslash,Ground,,450,75,100,110,45,55,65,1,False
|
||||
Nidoran♀,Poison,,275,55,47,52,40,40,41,1,False
|
||||
Nidorina,Poison,,365,70,62,67,55,55,56,1,False
|
||||
Nidoqueen,Poison,Ground,505,90,92,87,75,85,76,1,False
|
||||
Nidoran♂,Poison,,273,46,57,40,40,40,50,1,False
|
||||
Nidorino,Poison,,365,61,72,57,55,55,65,1,False
|
||||
Nidoking,Poison,Ground,505,81,102,77,85,75,85,1,False
|
||||
Clefairy,Fairy,,323,70,45,48,60,65,35,1,False
|
||||
Clefable,Fairy,,483,95,70,73,95,90,60,1,False
|
||||
Vulpix,Fire,,299,38,41,40,50,65,65,1,False
|
||||
Ninetales,Fire,,505,73,76,75,81,100,100,1,False
|
||||
Jigglypuff,Normal,Fairy,270,115,45,20,45,25,20,1,False
|
||||
Wigglytuff,Normal,Fairy,435,140,70,45,85,50,45,1,False
|
||||
Zubat,Poison,Flying,245,40,45,35,30,40,55,1,False
|
||||
Golbat,Poison,Flying,455,75,80,70,65,75,90,1,False
|
||||
Oddish,Grass,Poison,320,45,50,55,75,65,30,1,False
|
||||
Gloom,Grass,Poison,395,60,65,70,85,75,40,1,False
|
||||
Vileplume,Grass,Poison,490,75,80,85,110,90,50,1,False
|
||||
Paras,Bug,Grass,285,35,70,55,45,55,25,1,False
|
||||
Parasect,Bug,Grass,405,60,95,80,60,80,30,1,False
|
||||
Venonat,Bug,Poison,305,60,55,50,40,55,45,1,False
|
||||
Venomoth,Bug,Poison,450,70,65,60,90,75,90,1,False
|
||||
Diglett,Ground,,265,10,55,25,35,45,95,1,False
|
||||
Dugtrio,Ground,,405,35,80,50,50,70,120,1,False
|
||||
Meowth,Normal,,290,40,45,35,40,40,90,1,False
|
||||
Persian,Normal,,440,65,70,60,65,65,115,1,False
|
||||
Psyduck,Water,,320,50,52,48,65,50,55,1,False
|
||||
Golduck,Water,,500,80,82,78,95,80,85,1,False
|
||||
Mankey,Fighting,,305,40,80,35,35,45,70,1,False
|
||||
Primeape,Fighting,,455,65,105,60,60,70,95,1,False
|
||||
Growlithe,Fire,,350,55,70,45,70,50,60,1,False
|
||||
Arcanine,Fire,,555,90,110,80,100,80,95,1,False
|
||||
Poliwag,Water,,300,40,50,40,40,40,90,1,False
|
||||
Poliwhirl,Water,,385,65,65,65,50,50,90,1,False
|
||||
Poliwrath,Water,Fighting,510,90,95,95,70,90,70,1,False
|
||||
Abra,Psychic,,310,25,20,15,105,55,90,1,False
|
||||
Kadabra,Psychic,,400,40,35,30,120,70,105,1,False
|
||||
Alakazam,Psychic,,500,55,50,45,135,95,120,1,False
|
||||
AlakazamMega Alakazam,Psychic,,590,55,50,65,175,95,150,1,False
|
||||
Machop,Fighting,,305,70,80,50,35,35,35,1,False
|
||||
Machoke,Fighting,,405,80,100,70,50,60,45,1,False
|
||||
Machamp,Fighting,,505,90,130,80,65,85,55,1,False
|
||||
Bellsprout,Grass,Poison,300,50,75,35,70,30,40,1,False
|
||||
Weepinbell,Grass,Poison,390,65,90,50,85,45,55,1,False
|
||||
Victreebel,Grass,Poison,490,80,105,65,100,70,70,1,False
|
||||
Tentacool,Water,Poison,335,40,40,35,50,100,70,1,False
|
||||
Tentacruel,Water,Poison,515,80,70,65,80,120,100,1,False
|
||||
Geodude,Rock,Ground,300,40,80,100,30,30,20,1,False
|
||||
Graveler,Rock,Ground,390,55,95,115,45,45,35,1,False
|
||||
Golem,Rock,Ground,495,80,120,130,55,65,45,1,False
|
||||
Ponyta,Fire,,410,50,85,55,65,65,90,1,False
|
||||
Rapidash,Fire,,500,65,100,70,80,80,105,1,False
|
||||
Slowpoke,Water,Psychic,315,90,65,65,40,40,15,1,False
|
||||
Slowbro,Water,Psychic,490,95,75,110,100,80,30,1,False
|
||||
SlowbroMega Slowbro,Water,Psychic,590,95,75,180,130,80,30,1,False
|
||||
Magnemite,Electric,Steel,325,25,35,70,95,55,45,1,False
|
||||
Magneton,Electric,Steel,465,50,60,95,120,70,70,1,False
|
||||
Farfetch'd,Normal,Flying,352,52,65,55,58,62,60,1,False
|
||||
Doduo,Normal,Flying,310,35,85,45,35,35,75,1,False
|
||||
Dodrio,Normal,Flying,460,60,110,70,60,60,100,1,False
|
||||
Seel,Water,,325,65,45,55,45,70,45,1,False
|
||||
Dewgong,Water,Ice,475,90,70,80,70,95,70,1,False
|
||||
Grimer,Poison,,325,80,80,50,40,50,25,1,False
|
||||
Muk,Poison,,500,105,105,75,65,100,50,1,False
|
||||
Shellder,Water,,305,30,65,100,45,25,40,1,False
|
||||
Cloyster,Water,Ice,525,50,95,180,85,45,70,1,False
|
||||
Gastly,Ghost,Poison,310,30,35,30,100,35,80,1,False
|
||||
Haunter,Ghost,Poison,405,45,50,45,115,55,95,1,False
|
||||
Gengar,Ghost,Poison,500,60,65,60,130,75,110,1,False
|
||||
GengarMega Gengar,Ghost,Poison,600,60,65,80,170,95,130,1,False
|
||||
Onix,Rock,Ground,385,35,45,160,30,45,70,1,False
|
||||
Drowzee,Psychic,,328,60,48,45,43,90,42,1,False
|
||||
Hypno,Psychic,,483,85,73,70,73,115,67,1,False
|
||||
Krabby,Water,,325,30,105,90,25,25,50,1,False
|
||||
Kingler,Water,,475,55,130,115,50,50,75,1,False
|
||||
Voltorb,Electric,,330,40,30,50,55,55,100,1,False
|
||||
Electrode,Electric,,480,60,50,70,80,80,140,1,False
|
||||
Exeggcute,Grass,Psychic,325,60,40,80,60,45,40,1,False
|
||||
Exeggutor,Grass,Psychic,520,95,95,85,125,65,55,1,False
|
||||
Cubone,Ground,,320,50,50,95,40,50,35,1,False
|
||||
Marowak,Ground,,425,60,80,110,50,80,45,1,False
|
||||
Hitmonlee,Fighting,,455,50,120,53,35,110,87,1,False
|
||||
Hitmonchan,Fighting,,455,50,105,79,35,110,76,1,False
|
||||
Lickitung,Normal,,385,90,55,75,60,75,30,1,False
|
||||
Koffing,Poison,,340,40,65,95,60,45,35,1,False
|
||||
Weezing,Poison,,490,65,90,120,85,70,60,1,False
|
||||
Rhyhorn,Ground,Rock,345,80,85,95,30,30,25,1,False
|
||||
Rhydon,Ground,Rock,485,105,130,120,45,45,40,1,False
|
||||
Chansey,Normal,,450,250,5,5,35,105,50,1,False
|
||||
Tangela,Grass,,435,65,55,115,100,40,60,1,False
|
||||
Kangaskhan,Normal,,490,105,95,80,40,80,90,1,False
|
||||
KangaskhanMega Kangaskhan,Normal,,590,105,125,100,60,100,100,1,False
|
||||
Horsea,Water,,295,30,40,70,70,25,60,1,False
|
||||
Seadra,Water,,440,55,65,95,95,45,85,1,False
|
||||
Goldeen,Water,,320,45,67,60,35,50,63,1,False
|
||||
Seaking,Water,,450,80,92,65,65,80,68,1,False
|
||||
Staryu,Water,,340,30,45,55,70,55,85,1,False
|
||||
Starmie,Water,Psychic,520,60,75,85,100,85,115,1,False
|
||||
Mr. Mime,Psychic,Fairy,460,40,45,65,100,120,90,1,False
|
||||
Scyther,Bug,Flying,500,70,110,80,55,80,105,1,False
|
||||
Jynx,Ice,Psychic,455,65,50,35,115,95,95,1,False
|
||||
Electabuzz,Electric,,490,65,83,57,95,85,105,1,False
|
||||
Magmar,Fire,,495,65,95,57,100,85,93,1,False
|
||||
Pinsir,Bug,,500,65,125,100,55,70,85,1,False
|
||||
PinsirMega Pinsir,Bug,Flying,600,65,155,120,65,90,105,1,False
|
||||
Tauros,Normal,,490,75,100,95,40,70,110,1,False
|
||||
Magikarp,Water,,200,20,10,55,15,20,80,1,False
|
||||
Gyarados,Water,Flying,540,95,125,79,60,100,81,1,False
|
||||
GyaradosMega Gyarados,Water,Dark,640,95,155,109,70,130,81,1,False
|
||||
Lapras,Water,Ice,535,130,85,80,85,95,60,1,False
|
||||
Ditto,Normal,,288,48,48,48,48,48,48,1,False
|
||||
Eevee,Normal,,325,55,55,50,45,65,55,1,False
|
||||
Vaporeon,Water,,525,130,65,60,110,95,65,1,False
|
||||
Jolteon,Electric,,525,65,65,60,110,95,130,1,False
|
||||
Flareon,Fire,,525,65,130,60,95,110,65,1,False
|
||||
Porygon,Normal,,395,65,60,70,85,75,40,1,False
|
||||
Omanyte,Rock,Water,355,35,40,100,90,55,35,1,False
|
||||
Omastar,Rock,Water,495,70,60,125,115,70,55,1,False
|
||||
Kabuto,Rock,Water,355,30,80,90,55,45,55,1,False
|
||||
Kabutops,Rock,Water,495,60,115,105,65,70,80,1,False
|
||||
Aerodactyl,Rock,Flying,515,80,105,65,60,75,130,1,False
|
||||
AerodactylMega Aerodactyl,Rock,Flying,615,80,135,85,70,95,150,1,False
|
||||
Snorlax,Normal,,540,160,110,65,65,110,30,1,False
|
||||
Articuno,Ice,Flying,580,90,85,100,95,125,85,1,True
|
||||
Zapdos,Electric,Flying,580,90,90,85,125,90,100,1,True
|
||||
Moltres,Fire,Flying,580,90,100,90,125,85,90,1,True
|
||||
Dratini,Dragon,,300,41,64,45,50,50,50,1,False
|
||||
Dragonair,Dragon,,420,61,84,65,70,70,70,1,False
|
||||
Dragonite,Dragon,Flying,600,91,134,95,100,100,80,1,False
|
||||
Mewtwo,Psychic,,680,106,110,90,154,90,130,1,True
|
||||
MewtwoMega Mewtwo X,Psychic,Fighting,780,106,190,100,154,100,130,1,True
|
||||
MewtwoMega Mewtwo Y,Psychic,,780,106,150,70,194,120,140,1,True
|
||||
Mew,Psychic,,600,100,100,100,100,100,100,1,False
|
||||
Chikorita,Grass,,318,45,49,65,49,65,45,2,False
|
||||
Bayleef,Grass,,405,60,62,80,63,80,60,2,False
|
||||
Meganium,Grass,,525,80,82,100,83,100,80,2,False
|
||||
Cyndaquil,Fire,,309,39,52,43,60,50,65,2,False
|
||||
Quilava,Fire,,405,58,64,58,80,65,80,2,False
|
||||
Typhlosion,Fire,,534,78,84,78,109,85,100,2,False
|
||||
Totodile,Water,,314,50,65,64,44,48,43,2,False
|
||||
Croconaw,Water,,405,65,80,80,59,63,58,2,False
|
||||
Feraligatr,Water,,530,85,105,100,79,83,78,2,False
|
||||
Sentret,Normal,,215,35,46,34,35,45,20,2,False
|
||||
Furret,Normal,,415,85,76,64,45,55,90,2,False
|
||||
Hoothoot,Normal,Flying,262,60,30,30,36,56,50,2,False
|
||||
Noctowl,Normal,Flying,442,100,50,50,76,96,70,2,False
|
||||
Ledyba,Bug,Flying,265,40,20,30,40,80,55,2,False
|
||||
Ledian,Bug,Flying,390,55,35,50,55,110,85,2,False
|
||||
Spinarak,Bug,Poison,250,40,60,40,40,40,30,2,False
|
||||
Ariados,Bug,Poison,390,70,90,70,60,60,40,2,False
|
||||
Crobat,Poison,Flying,535,85,90,80,70,80,130,2,False
|
||||
Chinchou,Water,Electric,330,75,38,38,56,56,67,2,False
|
||||
Lanturn,Water,Electric,460,125,58,58,76,76,67,2,False
|
||||
Pichu,Electric,,205,20,40,15,35,35,60,2,False
|
||||
Cleffa,Fairy,,218,50,25,28,45,55,15,2,False
|
||||
Igglybuff,Normal,Fairy,210,90,30,15,40,20,15,2,False
|
||||
Togepi,Fairy,,245,35,20,65,40,65,20,2,False
|
||||
Togetic,Fairy,Flying,405,55,40,85,80,105,40,2,False
|
||||
Natu,Psychic,Flying,320,40,50,45,70,45,70,2,False
|
||||
Xatu,Psychic,Flying,470,65,75,70,95,70,95,2,False
|
||||
Mareep,Electric,,280,55,40,40,65,45,35,2,False
|
||||
Flaaffy,Electric,,365,70,55,55,80,60,45,2,False
|
||||
Ampharos,Electric,,510,90,75,85,115,90,55,2,False
|
||||
AmpharosMega Ampharos,Electric,Dragon,610,90,95,105,165,110,45,2,False
|
||||
Bellossom,Grass,,490,75,80,95,90,100,50,2,False
|
||||
Marill,Water,Fairy,250,70,20,50,20,50,40,2,False
|
||||
Azumarill,Water,Fairy,420,100,50,80,60,80,50,2,False
|
||||
Sudowoodo,Rock,,410,70,100,115,30,65,30,2,False
|
||||
Politoed,Water,,500,90,75,75,90,100,70,2,False
|
||||
Hoppip,Grass,Flying,250,35,35,40,35,55,50,2,False
|
||||
Skiploom,Grass,Flying,340,55,45,50,45,65,80,2,False
|
||||
Jumpluff,Grass,Flying,460,75,55,70,55,95,110,2,False
|
||||
Aipom,Normal,,360,55,70,55,40,55,85,2,False
|
||||
Sunkern,Grass,,180,30,30,30,30,30,30,2,False
|
||||
Sunflora,Grass,,425,75,75,55,105,85,30,2,False
|
||||
Yanma,Bug,Flying,390,65,65,45,75,45,95,2,False
|
||||
Wooper,Water,Ground,210,55,45,45,25,25,15,2,False
|
||||
Quagsire,Water,Ground,430,95,85,85,65,65,35,2,False
|
||||
Espeon,Psychic,,525,65,65,60,130,95,110,2,False
|
||||
Umbreon,Dark,,525,95,65,110,60,130,65,2,False
|
||||
Murkrow,Dark,Flying,405,60,85,42,85,42,91,2,False
|
||||
Slowking,Water,Psychic,490,95,75,80,100,110,30,2,False
|
||||
Misdreavus,Ghost,,435,60,60,60,85,85,85,2,False
|
||||
Unown,Psychic,,336,48,72,48,72,48,48,2,False
|
||||
Wobbuffet,Psychic,,405,190,33,58,33,58,33,2,False
|
||||
Girafarig,Normal,Psychic,455,70,80,65,90,65,85,2,False
|
||||
Pineco,Bug,,290,50,65,90,35,35,15,2,False
|
||||
Forretress,Bug,Steel,465,75,90,140,60,60,40,2,False
|
||||
Dunsparce,Normal,,415,100,70,70,65,65,45,2,False
|
||||
Gligar,Ground,Flying,430,65,75,105,35,65,85,2,False
|
||||
Steelix,Steel,Ground,510,75,85,200,55,65,30,2,False
|
||||
SteelixMega Steelix,Steel,Ground,610,75,125,230,55,95,30,2,False
|
||||
Snubbull,Fairy,,300,60,80,50,40,40,30,2,False
|
||||
Granbull,Fairy,,450,90,120,75,60,60,45,2,False
|
||||
Qwilfish,Water,Poison,430,65,95,75,55,55,85,2,False
|
||||
Scizor,Bug,Steel,500,70,130,100,55,80,65,2,False
|
||||
ScizorMega Scizor,Bug,Steel,600,70,150,140,65,100,75,2,False
|
||||
Shuckle,Bug,Rock,505,20,10,230,10,230,5,2,False
|
||||
Heracross,Bug,Fighting,500,80,125,75,40,95,85,2,False
|
||||
HeracrossMega Heracross,Bug,Fighting,600,80,185,115,40,105,75,2,False
|
||||
Sneasel,Dark,Ice,430,55,95,55,35,75,115,2,False
|
||||
Teddiursa,Normal,,330,60,80,50,50,50,40,2,False
|
||||
Ursaring,Normal,,500,90,130,75,75,75,55,2,False
|
||||
Slugma,Fire,,250,40,40,40,70,40,20,2,False
|
||||
Magcargo,Fire,Rock,410,50,50,120,80,80,30,2,False
|
||||
Swinub,Ice,Ground,250,50,50,40,30,30,50,2,False
|
||||
Piloswine,Ice,Ground,450,100,100,80,60,60,50,2,False
|
||||
Corsola,Water,Rock,380,55,55,85,65,85,35,2,False
|
||||
Remoraid,Water,,300,35,65,35,65,35,65,2,False
|
||||
Octillery,Water,,480,75,105,75,105,75,45,2,False
|
||||
Delibird,Ice,Flying,330,45,55,45,65,45,75,2,False
|
||||
Mantine,Water,Flying,465,65,40,70,80,140,70,2,False
|
||||
Skarmory,Steel,Flying,465,65,80,140,40,70,70,2,False
|
||||
Houndour,Dark,Fire,330,45,60,30,80,50,65,2,False
|
||||
Houndoom,Dark,Fire,500,75,90,50,110,80,95,2,False
|
||||
HoundoomMega Houndoom,Dark,Fire,600,75,90,90,140,90,115,2,False
|
||||
Kingdra,Water,Dragon,540,75,95,95,95,95,85,2,False
|
||||
Phanpy,Ground,,330,90,60,60,40,40,40,2,False
|
||||
Donphan,Ground,,500,90,120,120,60,60,50,2,False
|
||||
Porygon2,Normal,,515,85,80,90,105,95,60,2,False
|
||||
Stantler,Normal,,465,73,95,62,85,65,85,2,False
|
||||
Smeargle,Normal,,250,55,20,35,20,45,75,2,False
|
||||
Tyrogue,Fighting,,210,35,35,35,35,35,35,2,False
|
||||
Hitmontop,Fighting,,455,50,95,95,35,110,70,2,False
|
||||
Smoochum,Ice,Psychic,305,45,30,15,85,65,65,2,False
|
||||
Elekid,Electric,,360,45,63,37,65,55,95,2,False
|
||||
Magby,Fire,,365,45,75,37,70,55,83,2,False
|
||||
Miltank,Normal,,490,95,80,105,40,70,100,2,False
|
||||
Blissey,Normal,,540,255,10,10,75,135,55,2,False
|
||||
Raikou,Electric,,580,90,85,75,115,100,115,2,True
|
||||
Entei,Fire,,580,115,115,85,90,75,100,2,True
|
||||
Suicune,Water,,580,100,75,115,90,115,85,2,True
|
||||
Larvitar,Rock,Ground,300,50,64,50,45,50,41,2,False
|
||||
Pupitar,Rock,Ground,410,70,84,70,65,70,51,2,False
|
||||
Tyranitar,Rock,Dark,600,100,134,110,95,100,61,2,False
|
||||
TyranitarMega Tyranitar,Rock,Dark,700,100,164,150,95,120,71,2,False
|
||||
Lugia,Psychic,Flying,680,106,90,130,90,154,110,2,True
|
||||
Ho-oh,Fire,Flying,680,106,130,90,110,154,90,2,True
|
||||
Celebi,Psychic,Grass,600,100,100,100,100,100,100,2,False
|
||||
Treecko,Grass,,310,40,45,35,65,55,70,3,False
|
||||
Grovyle,Grass,,405,50,65,45,85,65,95,3,False
|
||||
Sceptile,Grass,,530,70,85,65,105,85,120,3,False
|
||||
SceptileMega Sceptile,Grass,Dragon,630,70,110,75,145,85,145,3,False
|
||||
Torchic,Fire,,310,45,60,40,70,50,45,3,False
|
||||
Combusken,Fire,Fighting,405,60,85,60,85,60,55,3,False
|
||||
Blaziken,Fire,Fighting,530,80,120,70,110,70,80,3,False
|
||||
BlazikenMega Blaziken,Fire,Fighting,630,80,160,80,130,80,100,3,False
|
||||
Mudkip,Water,,310,50,70,50,50,50,40,3,False
|
||||
Marshtomp,Water,Ground,405,70,85,70,60,70,50,3,False
|
||||
Swampert,Water,Ground,535,100,110,90,85,90,60,3,False
|
||||
SwampertMega Swampert,Water,Ground,635,100,150,110,95,110,70,3,False
|
||||
Poochyena,Dark,,220,35,55,35,30,30,35,3,False
|
||||
Mightyena,Dark,,420,70,90,70,60,60,70,3,False
|
||||
Zigzagoon,Normal,,240,38,30,41,30,41,60,3,False
|
||||
Linoone,Normal,,420,78,70,61,50,61,100,3,False
|
||||
Wurmple,Bug,,195,45,45,35,20,30,20,3,False
|
||||
Silcoon,Bug,,205,50,35,55,25,25,15,3,False
|
||||
Beautifly,Bug,Flying,395,60,70,50,100,50,65,3,False
|
||||
Cascoon,Bug,,205,50,35,55,25,25,15,3,False
|
||||
Dustox,Bug,Poison,385,60,50,70,50,90,65,3,False
|
||||
Lotad,Water,Grass,220,40,30,30,40,50,30,3,False
|
||||
Lombre,Water,Grass,340,60,50,50,60,70,50,3,False
|
||||
Ludicolo,Water,Grass,480,80,70,70,90,100,70,3,False
|
||||
Seedot,Grass,,220,40,40,50,30,30,30,3,False
|
||||
Nuzleaf,Grass,Dark,340,70,70,40,60,40,60,3,False
|
||||
Shiftry,Grass,Dark,480,90,100,60,90,60,80,3,False
|
||||
Taillow,Normal,Flying,270,40,55,30,30,30,85,3,False
|
||||
Swellow,Normal,Flying,430,60,85,60,50,50,125,3,False
|
||||
Wingull,Water,Flying,270,40,30,30,55,30,85,3,False
|
||||
Pelipper,Water,Flying,430,60,50,100,85,70,65,3,False
|
||||
Ralts,Psychic,Fairy,198,28,25,25,45,35,40,3,False
|
||||
Kirlia,Psychic,Fairy,278,38,35,35,65,55,50,3,False
|
||||
Gardevoir,Psychic,Fairy,518,68,65,65,125,115,80,3,False
|
||||
GardevoirMega Gardevoir,Psychic,Fairy,618,68,85,65,165,135,100,3,False
|
||||
Surskit,Bug,Water,269,40,30,32,50,52,65,3,False
|
||||
Masquerain,Bug,Flying,414,70,60,62,80,82,60,3,False
|
||||
Shroomish,Grass,,295,60,40,60,40,60,35,3,False
|
||||
Breloom,Grass,Fighting,460,60,130,80,60,60,70,3,False
|
||||
Slakoth,Normal,,280,60,60,60,35,35,30,3,False
|
||||
Vigoroth,Normal,,440,80,80,80,55,55,90,3,False
|
||||
Slaking,Normal,,670,150,160,100,95,65,100,3,False
|
||||
Nincada,Bug,Ground,266,31,45,90,30,30,40,3,False
|
||||
Ninjask,Bug,Flying,456,61,90,45,50,50,160,3,False
|
||||
Shedinja,Bug,Ghost,236,1,90,45,30,30,40,3,False
|
||||
Whismur,Normal,,240,64,51,23,51,23,28,3,False
|
||||
Loudred,Normal,,360,84,71,43,71,43,48,3,False
|
||||
Exploud,Normal,,490,104,91,63,91,73,68,3,False
|
||||
Makuhita,Fighting,,237,72,60,30,20,30,25,3,False
|
||||
Hariyama,Fighting,,474,144,120,60,40,60,50,3,False
|
||||
Azurill,Normal,Fairy,190,50,20,40,20,40,20,3,False
|
||||
Nosepass,Rock,,375,30,45,135,45,90,30,3,False
|
||||
Skitty,Normal,,260,50,45,45,35,35,50,3,False
|
||||
Delcatty,Normal,,380,70,65,65,55,55,70,3,False
|
||||
Sableye,Dark,Ghost,380,50,75,75,65,65,50,3,False
|
||||
SableyeMega Sableye,Dark,Ghost,480,50,85,125,85,115,20,3,False
|
||||
Mawile,Steel,Fairy,380,50,85,85,55,55,50,3,False
|
||||
MawileMega Mawile,Steel,Fairy,480,50,105,125,55,95,50,3,False
|
||||
Aron,Steel,Rock,330,50,70,100,40,40,30,3,False
|
||||
Lairon,Steel,Rock,430,60,90,140,50,50,40,3,False
|
||||
Aggron,Steel,Rock,530,70,110,180,60,60,50,3,False
|
||||
AggronMega Aggron,Steel,,630,70,140,230,60,80,50,3,False
|
||||
Meditite,Fighting,Psychic,280,30,40,55,40,55,60,3,False
|
||||
Medicham,Fighting,Psychic,410,60,60,75,60,75,80,3,False
|
||||
MedichamMega Medicham,Fighting,Psychic,510,60,100,85,80,85,100,3,False
|
||||
Electrike,Electric,,295,40,45,40,65,40,65,3,False
|
||||
Manectric,Electric,,475,70,75,60,105,60,105,3,False
|
||||
ManectricMega Manectric,Electric,,575,70,75,80,135,80,135,3,False
|
||||
Plusle,Electric,,405,60,50,40,85,75,95,3,False
|
||||
Minun,Electric,,405,60,40,50,75,85,95,3,False
|
||||
Volbeat,Bug,,400,65,73,55,47,75,85,3,False
|
||||
Illumise,Bug,,400,65,47,55,73,75,85,3,False
|
||||
Roselia,Grass,Poison,400,50,60,45,100,80,65,3,False
|
||||
Gulpin,Poison,,302,70,43,53,43,53,40,3,False
|
||||
Swalot,Poison,,467,100,73,83,73,83,55,3,False
|
||||
Carvanha,Water,Dark,305,45,90,20,65,20,65,3,False
|
||||
Sharpedo,Water,Dark,460,70,120,40,95,40,95,3,False
|
||||
SharpedoMega Sharpedo,Water,Dark,560,70,140,70,110,65,105,3,False
|
||||
Wailmer,Water,,400,130,70,35,70,35,60,3,False
|
||||
Wailord,Water,,500,170,90,45,90,45,60,3,False
|
||||
Numel,Fire,Ground,305,60,60,40,65,45,35,3,False
|
||||
Camerupt,Fire,Ground,460,70,100,70,105,75,40,3,False
|
||||
CameruptMega Camerupt,Fire,Ground,560,70,120,100,145,105,20,3,False
|
||||
Torkoal,Fire,,470,70,85,140,85,70,20,3,False
|
||||
Spoink,Psychic,,330,60,25,35,70,80,60,3,False
|
||||
Grumpig,Psychic,,470,80,45,65,90,110,80,3,False
|
||||
Spinda,Normal,,360,60,60,60,60,60,60,3,False
|
||||
Trapinch,Ground,,290,45,100,45,45,45,10,3,False
|
||||
Vibrava,Ground,Dragon,340,50,70,50,50,50,70,3,False
|
||||
Flygon,Ground,Dragon,520,80,100,80,80,80,100,3,False
|
||||
Cacnea,Grass,,335,50,85,40,85,40,35,3,False
|
||||
Cacturne,Grass,Dark,475,70,115,60,115,60,55,3,False
|
||||
Swablu,Normal,Flying,310,45,40,60,40,75,50,3,False
|
||||
Altaria,Dragon,Flying,490,75,70,90,70,105,80,3,False
|
||||
AltariaMega Altaria,Dragon,Fairy,590,75,110,110,110,105,80,3,False
|
||||
Zangoose,Normal,,458,73,115,60,60,60,90,3,False
|
||||
Seviper,Poison,,458,73,100,60,100,60,65,3,False
|
||||
Lunatone,Rock,Psychic,440,70,55,65,95,85,70,3,False
|
||||
Solrock,Rock,Psychic,440,70,95,85,55,65,70,3,False
|
||||
Barboach,Water,Ground,288,50,48,43,46,41,60,3,False
|
||||
Whiscash,Water,Ground,468,110,78,73,76,71,60,3,False
|
||||
Corphish,Water,,308,43,80,65,50,35,35,3,False
|
||||
Crawdaunt,Water,Dark,468,63,120,85,90,55,55,3,False
|
||||
Baltoy,Ground,Psychic,300,40,40,55,40,70,55,3,False
|
||||
Claydol,Ground,Psychic,500,60,70,105,70,120,75,3,False
|
||||
Lileep,Rock,Grass,355,66,41,77,61,87,23,3,False
|
||||
Cradily,Rock,Grass,495,86,81,97,81,107,43,3,False
|
||||
Anorith,Rock,Bug,355,45,95,50,40,50,75,3,False
|
||||
Armaldo,Rock,Bug,495,75,125,100,70,80,45,3,False
|
||||
Feebas,Water,,200,20,15,20,10,55,80,3,False
|
||||
Milotic,Water,,540,95,60,79,100,125,81,3,False
|
||||
Castform,Normal,,420,70,70,70,70,70,70,3,False
|
||||
Kecleon,Normal,,440,60,90,70,60,120,40,3,False
|
||||
Shuppet,Ghost,,295,44,75,35,63,33,45,3,False
|
||||
Banette,Ghost,,455,64,115,65,83,63,65,3,False
|
||||
BanetteMega Banette,Ghost,,555,64,165,75,93,83,75,3,False
|
||||
Duskull,Ghost,,295,20,40,90,30,90,25,3,False
|
||||
Dusclops,Ghost,,455,40,70,130,60,130,25,3,False
|
||||
Tropius,Grass,Flying,460,99,68,83,72,87,51,3,False
|
||||
Chimecho,Psychic,,425,65,50,70,95,80,65,3,False
|
||||
Absol,Dark,,465,65,130,60,75,60,75,3,False
|
||||
AbsolMega Absol,Dark,,565,65,150,60,115,60,115,3,False
|
||||
Wynaut,Psychic,,260,95,23,48,23,48,23,3,False
|
||||
Snorunt,Ice,,300,50,50,50,50,50,50,3,False
|
||||
Glalie,Ice,,480,80,80,80,80,80,80,3,False
|
||||
GlalieMega Glalie,Ice,,580,80,120,80,120,80,100,3,False
|
||||
Spheal,Ice,Water,290,70,40,50,55,50,25,3,False
|
||||
Sealeo,Ice,Water,410,90,60,70,75,70,45,3,False
|
||||
Walrein,Ice,Water,530,110,80,90,95,90,65,3,False
|
||||
Clamperl,Water,,345,35,64,85,74,55,32,3,False
|
||||
Huntail,Water,,485,55,104,105,94,75,52,3,False
|
||||
Gorebyss,Water,,485,55,84,105,114,75,52,3,False
|
||||
Relicanth,Water,Rock,485,100,90,130,45,65,55,3,False
|
||||
Luvdisc,Water,,330,43,30,55,40,65,97,3,False
|
||||
Bagon,Dragon,,300,45,75,60,40,30,50,3,False
|
||||
Shelgon,Dragon,,420,65,95,100,60,50,50,3,False
|
||||
Salamence,Dragon,Flying,600,95,135,80,110,80,100,3,False
|
||||
SalamenceMega Salamence,Dragon,Flying,700,95,145,130,120,90,120,3,False
|
||||
Beldum,Steel,Psychic,300,40,55,80,35,60,30,3,False
|
||||
Metang,Steel,Psychic,420,60,75,100,55,80,50,3,False
|
||||
Metagross,Steel,Psychic,600,80,135,130,95,90,70,3,False
|
||||
MetagrossMega Metagross,Steel,Psychic,700,80,145,150,105,110,110,3,False
|
||||
Regirock,Rock,,580,80,100,200,50,100,50,3,True
|
||||
Regice,Ice,,580,80,50,100,100,200,50,3,True
|
||||
Registeel,Steel,,580,80,75,150,75,150,50,3,True
|
||||
Latias,Dragon,Psychic,600,80,80,90,110,130,110,3,True
|
||||
LatiasMega Latias,Dragon,Psychic,700,80,100,120,140,150,110,3,True
|
||||
Latios,Dragon,Psychic,600,80,90,80,130,110,110,3,True
|
||||
LatiosMega Latios,Dragon,Psychic,700,80,130,100,160,120,110,3,True
|
||||
Kyogre,Water,,670,100,100,90,150,140,90,3,True
|
||||
KyogrePrimal Kyogre,Water,,770,100,150,90,180,160,90,3,True
|
||||
Groudon,Ground,,670,100,150,140,100,90,90,3,True
|
||||
GroudonPrimal Groudon,Ground,Fire,770,100,180,160,150,90,90,3,True
|
||||
Rayquaza,Dragon,Flying,680,105,150,90,150,90,95,3,True
|
||||
RayquazaMega Rayquaza,Dragon,Flying,780,105,180,100,180,100,115,3,True
|
||||
Jirachi,Steel,Psychic,600,100,100,100,100,100,100,3,True
|
||||
DeoxysNormal Forme,Psychic,,600,50,150,50,150,50,150,3,True
|
||||
DeoxysAttack Forme,Psychic,,600,50,180,20,180,20,150,3,True
|
||||
DeoxysDefense Forme,Psychic,,600,50,70,160,70,160,90,3,True
|
||||
DeoxysSpeed Forme,Psychic,,600,50,95,90,95,90,180,3,True
|
||||
Turtwig,Grass,,318,55,68,64,45,55,31,4,False
|
||||
Grotle,Grass,,405,75,89,85,55,65,36,4,False
|
||||
Torterra,Grass,Ground,525,95,109,105,75,85,56,4,False
|
||||
Chimchar,Fire,,309,44,58,44,58,44,61,4,False
|
||||
Monferno,Fire,Fighting,405,64,78,52,78,52,81,4,False
|
||||
Infernape,Fire,Fighting,534,76,104,71,104,71,108,4,False
|
||||
Piplup,Water,,314,53,51,53,61,56,40,4,False
|
||||
Prinplup,Water,,405,64,66,68,81,76,50,4,False
|
||||
Empoleon,Water,Steel,530,84,86,88,111,101,60,4,False
|
||||
Starly,Normal,Flying,245,40,55,30,30,30,60,4,False
|
||||
Staravia,Normal,Flying,340,55,75,50,40,40,80,4,False
|
||||
Staraptor,Normal,Flying,485,85,120,70,50,60,100,4,False
|
||||
Bidoof,Normal,,250,59,45,40,35,40,31,4,False
|
||||
Bibarel,Normal,Water,410,79,85,60,55,60,71,4,False
|
||||
Kricketot,Bug,,194,37,25,41,25,41,25,4,False
|
||||
Kricketune,Bug,,384,77,85,51,55,51,65,4,False
|
||||
Shinx,Electric,,263,45,65,34,40,34,45,4,False
|
||||
Luxio,Electric,,363,60,85,49,60,49,60,4,False
|
||||
Luxray,Electric,,523,80,120,79,95,79,70,4,False
|
||||
Budew,Grass,Poison,280,40,30,35,50,70,55,4,False
|
||||
Roserade,Grass,Poison,515,60,70,65,125,105,90,4,False
|
||||
Cranidos,Rock,,350,67,125,40,30,30,58,4,False
|
||||
Rampardos,Rock,,495,97,165,60,65,50,58,4,False
|
||||
Shieldon,Rock,Steel,350,30,42,118,42,88,30,4,False
|
||||
Bastiodon,Rock,Steel,495,60,52,168,47,138,30,4,False
|
||||
Burmy,Bug,,224,40,29,45,29,45,36,4,False
|
||||
WormadamPlant Cloak,Bug,Grass,424,60,59,85,79,105,36,4,False
|
||||
WormadamSandy Cloak,Bug,Ground,424,60,79,105,59,85,36,4,False
|
||||
WormadamTrash Cloak,Bug,Steel,424,60,69,95,69,95,36,4,False
|
||||
Mothim,Bug,Flying,424,70,94,50,94,50,66,4,False
|
||||
Combee,Bug,Flying,244,30,30,42,30,42,70,4,False
|
||||
Vespiquen,Bug,Flying,474,70,80,102,80,102,40,4,False
|
||||
Pachirisu,Electric,,405,60,45,70,45,90,95,4,False
|
||||
Buizel,Water,,330,55,65,35,60,30,85,4,False
|
||||
Floatzel,Water,,495,85,105,55,85,50,115,4,False
|
||||
Cherubi,Grass,,275,45,35,45,62,53,35,4,False
|
||||
Cherrim,Grass,,450,70,60,70,87,78,85,4,False
|
||||
Shellos,Water,,325,76,48,48,57,62,34,4,False
|
||||
Gastrodon,Water,Ground,475,111,83,68,92,82,39,4,False
|
||||
Ambipom,Normal,,482,75,100,66,60,66,115,4,False
|
||||
Drifloon,Ghost,Flying,348,90,50,34,60,44,70,4,False
|
||||
Drifblim,Ghost,Flying,498,150,80,44,90,54,80,4,False
|
||||
Buneary,Normal,,350,55,66,44,44,56,85,4,False
|
||||
Lopunny,Normal,,480,65,76,84,54,96,105,4,False
|
||||
LopunnyMega Lopunny,Normal,Fighting,580,65,136,94,54,96,135,4,False
|
||||
Mismagius,Ghost,,495,60,60,60,105,105,105,4,False
|
||||
Honchkrow,Dark,Flying,505,100,125,52,105,52,71,4,False
|
||||
Glameow,Normal,,310,49,55,42,42,37,85,4,False
|
||||
Purugly,Normal,,452,71,82,64,64,59,112,4,False
|
||||
Chingling,Psychic,,285,45,30,50,65,50,45,4,False
|
||||
Stunky,Poison,Dark,329,63,63,47,41,41,74,4,False
|
||||
Skuntank,Poison,Dark,479,103,93,67,71,61,84,4,False
|
||||
Bronzor,Steel,Psychic,300,57,24,86,24,86,23,4,False
|
||||
Bronzong,Steel,Psychic,500,67,89,116,79,116,33,4,False
|
||||
Bonsly,Rock,,290,50,80,95,10,45,10,4,False
|
||||
Mime Jr.,Psychic,Fairy,310,20,25,45,70,90,60,4,False
|
||||
Happiny,Normal,,220,100,5,5,15,65,30,4,False
|
||||
Chatot,Normal,Flying,411,76,65,45,92,42,91,4,False
|
||||
Spiritomb,Ghost,Dark,485,50,92,108,92,108,35,4,False
|
||||
Gible,Dragon,Ground,300,58,70,45,40,45,42,4,False
|
||||
Gabite,Dragon,Ground,410,68,90,65,50,55,82,4,False
|
||||
Garchomp,Dragon,Ground,600,108,130,95,80,85,102,4,False
|
||||
GarchompMega Garchomp,Dragon,Ground,700,108,170,115,120,95,92,4,False
|
||||
Munchlax,Normal,,390,135,85,40,40,85,5,4,False
|
||||
Riolu,Fighting,,285,40,70,40,35,40,60,4,False
|
||||
Lucario,Fighting,Steel,525,70,110,70,115,70,90,4,False
|
||||
LucarioMega Lucario,Fighting,Steel,625,70,145,88,140,70,112,4,False
|
||||
Hippopotas,Ground,,330,68,72,78,38,42,32,4,False
|
||||
Hippowdon,Ground,,525,108,112,118,68,72,47,4,False
|
||||
Skorupi,Poison,Bug,330,40,50,90,30,55,65,4,False
|
||||
Drapion,Poison,Dark,500,70,90,110,60,75,95,4,False
|
||||
Croagunk,Poison,Fighting,300,48,61,40,61,40,50,4,False
|
||||
Toxicroak,Poison,Fighting,490,83,106,65,86,65,85,4,False
|
||||
Carnivine,Grass,,454,74,100,72,90,72,46,4,False
|
||||
Finneon,Water,,330,49,49,56,49,61,66,4,False
|
||||
Lumineon,Water,,460,69,69,76,69,86,91,4,False
|
||||
Mantyke,Water,Flying,345,45,20,50,60,120,50,4,False
|
||||
Snover,Grass,Ice,334,60,62,50,62,60,40,4,False
|
||||
Abomasnow,Grass,Ice,494,90,92,75,92,85,60,4,False
|
||||
AbomasnowMega Abomasnow,Grass,Ice,594,90,132,105,132,105,30,4,False
|
||||
Weavile,Dark,Ice,510,70,120,65,45,85,125,4,False
|
||||
Magnezone,Electric,Steel,535,70,70,115,130,90,60,4,False
|
||||
Lickilicky,Normal,,515,110,85,95,80,95,50,4,False
|
||||
Rhyperior,Ground,Rock,535,115,140,130,55,55,40,4,False
|
||||
Tangrowth,Grass,,535,100,100,125,110,50,50,4,False
|
||||
Electivire,Electric,,540,75,123,67,95,85,95,4,False
|
||||
Magmortar,Fire,,540,75,95,67,125,95,83,4,False
|
||||
Togekiss,Fairy,Flying,545,85,50,95,120,115,80,4,False
|
||||
Yanmega,Bug,Flying,515,86,76,86,116,56,95,4,False
|
||||
Leafeon,Grass,,525,65,110,130,60,65,95,4,False
|
||||
Glaceon,Ice,,525,65,60,110,130,95,65,4,False
|
||||
Gliscor,Ground,Flying,510,75,95,125,45,75,95,4,False
|
||||
Mamoswine,Ice,Ground,530,110,130,80,70,60,80,4,False
|
||||
Porygon-Z,Normal,,535,85,80,70,135,75,90,4,False
|
||||
Gallade,Psychic,Fighting,518,68,125,65,65,115,80,4,False
|
||||
GalladeMega Gallade,Psychic,Fighting,618,68,165,95,65,115,110,4,False
|
||||
Probopass,Rock,Steel,525,60,55,145,75,150,40,4,False
|
||||
Dusknoir,Ghost,,525,45,100,135,65,135,45,4,False
|
||||
Froslass,Ice,Ghost,480,70,80,70,80,70,110,4,False
|
||||
Rotom,Electric,Ghost,440,50,50,77,95,77,91,4,False
|
||||
RotomHeat Rotom,Electric,Fire,520,50,65,107,105,107,86,4,False
|
||||
RotomWash Rotom,Electric,Water,520,50,65,107,105,107,86,4,False
|
||||
RotomFrost Rotom,Electric,Ice,520,50,65,107,105,107,86,4,False
|
||||
RotomFan Rotom,Electric,Flying,520,50,65,107,105,107,86,4,False
|
||||
RotomMow Rotom,Electric,Grass,520,50,65,107,105,107,86,4,False
|
||||
Uxie,Psychic,,580,75,75,130,75,130,95,4,True
|
||||
Mesprit,Psychic,,580,80,105,105,105,105,80,4,True
|
||||
Azelf,Psychic,,580,75,125,70,125,70,115,4,True
|
||||
Dialga,Steel,Dragon,680,100,120,120,150,100,90,4,True
|
||||
Palkia,Water,Dragon,680,90,120,100,150,120,100,4,True
|
||||
Heatran,Fire,Steel,600,91,90,106,130,106,77,4,True
|
||||
Regigigas,Normal,,670,110,160,110,80,110,100,4,True
|
||||
GiratinaAltered Forme,Ghost,Dragon,680,150,100,120,100,120,90,4,True
|
||||
GiratinaOrigin Forme,Ghost,Dragon,680,150,120,100,120,100,90,4,True
|
||||
Cresselia,Psychic,,600,120,70,120,75,130,85,4,False
|
||||
Phione,Water,,480,80,80,80,80,80,80,4,False
|
||||
Manaphy,Water,,600,100,100,100,100,100,100,4,False
|
||||
Darkrai,Dark,,600,70,90,90,135,90,125,4,True
|
||||
ShayminLand Forme,Grass,,600,100,100,100,100,100,100,4,True
|
||||
ShayminSky Forme,Grass,Flying,600,100,103,75,120,75,127,4,True
|
||||
Arceus,Normal,,720,120,120,120,120,120,120,4,True
|
||||
Victini,Psychic,Fire,600,100,100,100,100,100,100,5,True
|
||||
Snivy,Grass,,308,45,45,55,45,55,63,5,False
|
||||
Servine,Grass,,413,60,60,75,60,75,83,5,False
|
||||
Serperior,Grass,,528,75,75,95,75,95,113,5,False
|
||||
Tepig,Fire,,308,65,63,45,45,45,45,5,False
|
||||
Pignite,Fire,Fighting,418,90,93,55,70,55,55,5,False
|
||||
Emboar,Fire,Fighting,528,110,123,65,100,65,65,5,False
|
||||
Oshawott,Water,,308,55,55,45,63,45,45,5,False
|
||||
Dewott,Water,,413,75,75,60,83,60,60,5,False
|
||||
Samurott,Water,,528,95,100,85,108,70,70,5,False
|
||||
Patrat,Normal,,255,45,55,39,35,39,42,5,False
|
||||
Watchog,Normal,,420,60,85,69,60,69,77,5,False
|
||||
Lillipup,Normal,,275,45,60,45,25,45,55,5,False
|
||||
Herdier,Normal,,370,65,80,65,35,65,60,5,False
|
||||
Stoutland,Normal,,500,85,110,90,45,90,80,5,False
|
||||
Purrloin,Dark,,281,41,50,37,50,37,66,5,False
|
||||
Liepard,Dark,,446,64,88,50,88,50,106,5,False
|
||||
Pansage,Grass,,316,50,53,48,53,48,64,5,False
|
||||
Simisage,Grass,,498,75,98,63,98,63,101,5,False
|
||||
Pansear,Fire,,316,50,53,48,53,48,64,5,False
|
||||
Simisear,Fire,,498,75,98,63,98,63,101,5,False
|
||||
Panpour,Water,,316,50,53,48,53,48,64,5,False
|
||||
Simipour,Water,,498,75,98,63,98,63,101,5,False
|
||||
Munna,Psychic,,292,76,25,45,67,55,24,5,False
|
||||
Musharna,Psychic,,487,116,55,85,107,95,29,5,False
|
||||
Pidove,Normal,Flying,264,50,55,50,36,30,43,5,False
|
||||
Tranquill,Normal,Flying,358,62,77,62,50,42,65,5,False
|
||||
Unfezant,Normal,Flying,488,80,115,80,65,55,93,5,False
|
||||
Blitzle,Electric,,295,45,60,32,50,32,76,5,False
|
||||
Zebstrika,Electric,,497,75,100,63,80,63,116,5,False
|
||||
Roggenrola,Rock,,280,55,75,85,25,25,15,5,False
|
||||
Boldore,Rock,,390,70,105,105,50,40,20,5,False
|
||||
Gigalith,Rock,,515,85,135,130,60,80,25,5,False
|
||||
Woobat,Psychic,Flying,313,55,45,43,55,43,72,5,False
|
||||
Swoobat,Psychic,Flying,425,67,57,55,77,55,114,5,False
|
||||
Drilbur,Ground,,328,60,85,40,30,45,68,5,False
|
||||
Excadrill,Ground,Steel,508,110,135,60,50,65,88,5,False
|
||||
Audino,Normal,,445,103,60,86,60,86,50,5,False
|
||||
AudinoMega Audino,Normal,Fairy,545,103,60,126,80,126,50,5,False
|
||||
Timburr,Fighting,,305,75,80,55,25,35,35,5,False
|
||||
Gurdurr,Fighting,,405,85,105,85,40,50,40,5,False
|
||||
Conkeldurr,Fighting,,505,105,140,95,55,65,45,5,False
|
||||
Tympole,Water,,294,50,50,40,50,40,64,5,False
|
||||
Palpitoad,Water,Ground,384,75,65,55,65,55,69,5,False
|
||||
Seismitoad,Water,Ground,509,105,95,75,85,75,74,5,False
|
||||
Throh,Fighting,,465,120,100,85,30,85,45,5,False
|
||||
Sawk,Fighting,,465,75,125,75,30,75,85,5,False
|
||||
Sewaddle,Bug,Grass,310,45,53,70,40,60,42,5,False
|
||||
Swadloon,Bug,Grass,380,55,63,90,50,80,42,5,False
|
||||
Leavanny,Bug,Grass,500,75,103,80,70,80,92,5,False
|
||||
Venipede,Bug,Poison,260,30,45,59,30,39,57,5,False
|
||||
Whirlipede,Bug,Poison,360,40,55,99,40,79,47,5,False
|
||||
Scolipede,Bug,Poison,485,60,100,89,55,69,112,5,False
|
||||
Cottonee,Grass,Fairy,280,40,27,60,37,50,66,5,False
|
||||
Whimsicott,Grass,Fairy,480,60,67,85,77,75,116,5,False
|
||||
Petilil,Grass,,280,45,35,50,70,50,30,5,False
|
||||
Lilligant,Grass,,480,70,60,75,110,75,90,5,False
|
||||
Basculin,Water,,460,70,92,65,80,55,98,5,False
|
||||
Sandile,Ground,Dark,292,50,72,35,35,35,65,5,False
|
||||
Krokorok,Ground,Dark,351,60,82,45,45,45,74,5,False
|
||||
Krookodile,Ground,Dark,519,95,117,80,65,70,92,5,False
|
||||
Darumaka,Fire,,315,70,90,45,15,45,50,5,False
|
||||
DarmanitanStandard Mode,Fire,,480,105,140,55,30,55,95,5,False
|
||||
DarmanitanZen Mode,Fire,Psychic,540,105,30,105,140,105,55,5,False
|
||||
Maractus,Grass,,461,75,86,67,106,67,60,5,False
|
||||
Dwebble,Bug,Rock,325,50,65,85,35,35,55,5,False
|
||||
Crustle,Bug,Rock,475,70,95,125,65,75,45,5,False
|
||||
Scraggy,Dark,Fighting,348,50,75,70,35,70,48,5,False
|
||||
Scrafty,Dark,Fighting,488,65,90,115,45,115,58,5,False
|
||||
Sigilyph,Psychic,Flying,490,72,58,80,103,80,97,5,False
|
||||
Yamask,Ghost,,303,38,30,85,55,65,30,5,False
|
||||
Cofagrigus,Ghost,,483,58,50,145,95,105,30,5,False
|
||||
Tirtouga,Water,Rock,355,54,78,103,53,45,22,5,False
|
||||
Carracosta,Water,Rock,495,74,108,133,83,65,32,5,False
|
||||
Archen,Rock,Flying,401,55,112,45,74,45,70,5,False
|
||||
Archeops,Rock,Flying,567,75,140,65,112,65,110,5,False
|
||||
Trubbish,Poison,,329,50,50,62,40,62,65,5,False
|
||||
Garbodor,Poison,,474,80,95,82,60,82,75,5,False
|
||||
Zorua,Dark,,330,40,65,40,80,40,65,5,False
|
||||
Zoroark,Dark,,510,60,105,60,120,60,105,5,False
|
||||
Minccino,Normal,,300,55,50,40,40,40,75,5,False
|
||||
Cinccino,Normal,,470,75,95,60,65,60,115,5,False
|
||||
Gothita,Psychic,,290,45,30,50,55,65,45,5,False
|
||||
Gothorita,Psychic,,390,60,45,70,75,85,55,5,False
|
||||
Gothitelle,Psychic,,490,70,55,95,95,110,65,5,False
|
||||
Solosis,Psychic,,290,45,30,40,105,50,20,5,False
|
||||
Duosion,Psychic,,370,65,40,50,125,60,30,5,False
|
||||
Reuniclus,Psychic,,490,110,65,75,125,85,30,5,False
|
||||
Ducklett,Water,Flying,305,62,44,50,44,50,55,5,False
|
||||
Swanna,Water,Flying,473,75,87,63,87,63,98,5,False
|
||||
Vanillite,Ice,,305,36,50,50,65,60,44,5,False
|
||||
Vanillish,Ice,,395,51,65,65,80,75,59,5,False
|
||||
Vanilluxe,Ice,,535,71,95,85,110,95,79,5,False
|
||||
Deerling,Normal,Grass,335,60,60,50,40,50,75,5,False
|
||||
Sawsbuck,Normal,Grass,475,80,100,70,60,70,95,5,False
|
||||
Emolga,Electric,Flying,428,55,75,60,75,60,103,5,False
|
||||
Karrablast,Bug,,315,50,75,45,40,45,60,5,False
|
||||
Escavalier,Bug,Steel,495,70,135,105,60,105,20,5,False
|
||||
Foongus,Grass,Poison,294,69,55,45,55,55,15,5,False
|
||||
Amoonguss,Grass,Poison,464,114,85,70,85,80,30,5,False
|
||||
Frillish,Water,Ghost,335,55,40,50,65,85,40,5,False
|
||||
Jellicent,Water,Ghost,480,100,60,70,85,105,60,5,False
|
||||
Alomomola,Water,,470,165,75,80,40,45,65,5,False
|
||||
Joltik,Bug,Electric,319,50,47,50,57,50,65,5,False
|
||||
Galvantula,Bug,Electric,472,70,77,60,97,60,108,5,False
|
||||
Ferroseed,Grass,Steel,305,44,50,91,24,86,10,5,False
|
||||
Ferrothorn,Grass,Steel,489,74,94,131,54,116,20,5,False
|
||||
Klink,Steel,,300,40,55,70,45,60,30,5,False
|
||||
Klang,Steel,,440,60,80,95,70,85,50,5,False
|
||||
Klinklang,Steel,,520,60,100,115,70,85,90,5,False
|
||||
Tynamo,Electric,,275,35,55,40,45,40,60,5,False
|
||||
Eelektrik,Electric,,405,65,85,70,75,70,40,5,False
|
||||
Eelektross,Electric,,515,85,115,80,105,80,50,5,False
|
||||
Elgyem,Psychic,,335,55,55,55,85,55,30,5,False
|
||||
Beheeyem,Psychic,,485,75,75,75,125,95,40,5,False
|
||||
Litwick,Ghost,Fire,275,50,30,55,65,55,20,5,False
|
||||
Lampent,Ghost,Fire,370,60,40,60,95,60,55,5,False
|
||||
Chandelure,Ghost,Fire,520,60,55,90,145,90,80,5,False
|
||||
Axew,Dragon,,320,46,87,60,30,40,57,5,False
|
||||
Fraxure,Dragon,,410,66,117,70,40,50,67,5,False
|
||||
Haxorus,Dragon,,540,76,147,90,60,70,97,5,False
|
||||
Cubchoo,Ice,,305,55,70,40,60,40,40,5,False
|
||||
Beartic,Ice,,485,95,110,80,70,80,50,5,False
|
||||
Cryogonal,Ice,,485,70,50,30,95,135,105,5,False
|
||||
Shelmet,Bug,,305,50,40,85,40,65,25,5,False
|
||||
Accelgor,Bug,,495,80,70,40,100,60,145,5,False
|
||||
Stunfisk,Ground,Electric,471,109,66,84,81,99,32,5,False
|
||||
Mienfoo,Fighting,,350,45,85,50,55,50,65,5,False
|
||||
Mienshao,Fighting,,510,65,125,60,95,60,105,5,False
|
||||
Druddigon,Dragon,,485,77,120,90,60,90,48,5,False
|
||||
Golett,Ground,Ghost,303,59,74,50,35,50,35,5,False
|
||||
Golurk,Ground,Ghost,483,89,124,80,55,80,55,5,False
|
||||
Pawniard,Dark,Steel,340,45,85,70,40,40,60,5,False
|
||||
Bisharp,Dark,Steel,490,65,125,100,60,70,70,5,False
|
||||
Bouffalant,Normal,,490,95,110,95,40,95,55,5,False
|
||||
Rufflet,Normal,Flying,350,70,83,50,37,50,60,5,False
|
||||
Braviary,Normal,Flying,510,100,123,75,57,75,80,5,False
|
||||
Vullaby,Dark,Flying,370,70,55,75,45,65,60,5,False
|
||||
Mandibuzz,Dark,Flying,510,110,65,105,55,95,80,5,False
|
||||
Heatmor,Fire,,484,85,97,66,105,66,65,5,False
|
||||
Durant,Bug,Steel,484,58,109,112,48,48,109,5,False
|
||||
Deino,Dark,Dragon,300,52,65,50,45,50,38,5,False
|
||||
Zweilous,Dark,Dragon,420,72,85,70,65,70,58,5,False
|
||||
Hydreigon,Dark,Dragon,600,92,105,90,125,90,98,5,False
|
||||
Larvesta,Bug,Fire,360,55,85,55,50,55,60,5,False
|
||||
Volcarona,Bug,Fire,550,85,60,65,135,105,100,5,False
|
||||
Cobalion,Steel,Fighting,580,91,90,129,90,72,108,5,True
|
||||
Terrakion,Rock,Fighting,580,91,129,90,72,90,108,5,True
|
||||
Virizion,Grass,Fighting,580,91,90,72,90,129,108,5,True
|
||||
TornadusIncarnate Forme,Flying,,580,79,115,70,125,80,111,5,True
|
||||
TornadusTherian Forme,Flying,,580,79,100,80,110,90,121,5,True
|
||||
ThundurusIncarnate Forme,Electric,Flying,580,79,115,70,125,80,111,5,True
|
||||
ThundurusTherian Forme,Electric,Flying,580,79,105,70,145,80,101,5,True
|
||||
Reshiram,Dragon,Fire,680,100,120,100,150,120,90,5,True
|
||||
Zekrom,Dragon,Electric,680,100,150,120,120,100,90,5,True
|
||||
LandorusIncarnate Forme,Ground,Flying,600,89,125,90,115,80,101,5,True
|
||||
LandorusTherian Forme,Ground,Flying,600,89,145,90,105,80,91,5,True
|
||||
Kyurem,Dragon,Ice,660,125,130,90,130,90,95,5,True
|
||||
KyuremBlack Kyurem,Dragon,Ice,700,125,170,100,120,90,95,5,True
|
||||
KyuremWhite Kyurem,Dragon,Ice,700,125,120,90,170,100,95,5,True
|
||||
KeldeoOrdinary Forme,Water,Fighting,580,91,72,90,129,90,108,5,False
|
||||
KeldeoResolute Forme,Water,Fighting,580,91,72,90,129,90,108,5,False
|
||||
MeloettaAria Forme,Normal,Psychic,600,100,77,77,128,128,90,5,False
|
||||
MeloettaPirouette Forme,Normal,Fighting,600,100,128,90,77,77,128,5,False
|
||||
Genesect,Bug,Steel,600,71,120,95,120,95,99,5,False
|
||||
Chespin,Grass,,313,56,61,65,48,45,38,6,False
|
||||
Quilladin,Grass,,405,61,78,95,56,58,57,6,False
|
||||
Chesnaught,Grass,Fighting,530,88,107,122,74,75,64,6,False
|
||||
Fennekin,Fire,,307,40,45,40,62,60,60,6,False
|
||||
Braixen,Fire,,409,59,59,58,90,70,73,6,False
|
||||
Delphox,Fire,Psychic,534,75,69,72,114,100,104,6,False
|
||||
Froakie,Water,,314,41,56,40,62,44,71,6,False
|
||||
Frogadier,Water,,405,54,63,52,83,56,97,6,False
|
||||
Greninja,Water,Dark,530,72,95,67,103,71,122,6,False
|
||||
Bunnelby,Normal,,237,38,36,38,32,36,57,6,False
|
||||
Diggersby,Normal,Ground,423,85,56,77,50,77,78,6,False
|
||||
Fletchling,Normal,Flying,278,45,50,43,40,38,62,6,False
|
||||
Fletchinder,Fire,Flying,382,62,73,55,56,52,84,6,False
|
||||
Talonflame,Fire,Flying,499,78,81,71,74,69,126,6,False
|
||||
Scatterbug,Bug,,200,38,35,40,27,25,35,6,False
|
||||
Spewpa,Bug,,213,45,22,60,27,30,29,6,False
|
||||
Vivillon,Bug,Flying,411,80,52,50,90,50,89,6,False
|
||||
Litleo,Fire,Normal,369,62,50,58,73,54,72,6,False
|
||||
Pyroar,Fire,Normal,507,86,68,72,109,66,106,6,False
|
||||
Flabébé,Fairy,,303,44,38,39,61,79,42,6,False
|
||||
Floette,Fairy,,371,54,45,47,75,98,52,6,False
|
||||
Florges,Fairy,,552,78,65,68,112,154,75,6,False
|
||||
Skiddo,Grass,,350,66,65,48,62,57,52,6,False
|
||||
Gogoat,Grass,,531,123,100,62,97,81,68,6,False
|
||||
Pancham,Fighting,,348,67,82,62,46,48,43,6,False
|
||||
Pangoro,Fighting,Dark,495,95,124,78,69,71,58,6,False
|
||||
Furfrou,Normal,,472,75,80,60,65,90,102,6,False
|
||||
Espurr,Psychic,,355,62,48,54,63,60,68,6,False
|
||||
MeowsticMale,Psychic,,466,74,48,76,83,81,104,6,False
|
||||
MeowsticFemale,Psychic,,466,74,48,76,83,81,104,6,False
|
||||
Honedge,Steel,Ghost,325,45,80,100,35,37,28,6,False
|
||||
Doublade,Steel,Ghost,448,59,110,150,45,49,35,6,False
|
||||
AegislashBlade Forme,Steel,Ghost,520,60,150,50,150,50,60,6,False
|
||||
AegislashShield Forme,Steel,Ghost,520,60,50,150,50,150,60,6,False
|
||||
Spritzee,Fairy,,341,78,52,60,63,65,23,6,False
|
||||
Aromatisse,Fairy,,462,101,72,72,99,89,29,6,False
|
||||
Swirlix,Fairy,,341,62,48,66,59,57,49,6,False
|
||||
Slurpuff,Fairy,,480,82,80,86,85,75,72,6,False
|
||||
Inkay,Dark,Psychic,288,53,54,53,37,46,45,6,False
|
||||
Malamar,Dark,Psychic,482,86,92,88,68,75,73,6,False
|
||||
Binacle,Rock,Water,306,42,52,67,39,56,50,6,False
|
||||
Barbaracle,Rock,Water,500,72,105,115,54,86,68,6,False
|
||||
Skrelp,Poison,Water,320,50,60,60,60,60,30,6,False
|
||||
Dragalge,Poison,Dragon,494,65,75,90,97,123,44,6,False
|
||||
Clauncher,Water,,330,50,53,62,58,63,44,6,False
|
||||
Clawitzer,Water,,500,71,73,88,120,89,59,6,False
|
||||
Helioptile,Electric,Normal,289,44,38,33,61,43,70,6,False
|
||||
Heliolisk,Electric,Normal,481,62,55,52,109,94,109,6,False
|
||||
Tyrunt,Rock,Dragon,362,58,89,77,45,45,48,6,False
|
||||
Tyrantrum,Rock,Dragon,521,82,121,119,69,59,71,6,False
|
||||
Amaura,Rock,Ice,362,77,59,50,67,63,46,6,False
|
||||
Aurorus,Rock,Ice,521,123,77,72,99,92,58,6,False
|
||||
Sylveon,Fairy,,525,95,65,65,110,130,60,6,False
|
||||
Hawlucha,Fighting,Flying,500,78,92,75,74,63,118,6,False
|
||||
Dedenne,Electric,Fairy,431,67,58,57,81,67,101,6,False
|
||||
Carbink,Rock,Fairy,500,50,50,150,50,150,50,6,False
|
||||
Goomy,Dragon,,300,45,50,35,55,75,40,6,False
|
||||
Sliggoo,Dragon,,452,68,75,53,83,113,60,6,False
|
||||
Goodra,Dragon,,600,90,100,70,110,150,80,6,False
|
||||
Klefki,Steel,Fairy,470,57,80,91,80,87,75,6,False
|
||||
Phantump,Ghost,Grass,309,43,70,48,50,60,38,6,False
|
||||
Trevenant,Ghost,Grass,474,85,110,76,65,82,56,6,False
|
||||
PumpkabooAverage Size,Ghost,Grass,335,49,66,70,44,55,51,6,False
|
||||
PumpkabooSmall Size,Ghost,Grass,335,44,66,70,44,55,56,6,False
|
||||
PumpkabooLarge Size,Ghost,Grass,335,54,66,70,44,55,46,6,False
|
||||
PumpkabooSuper Size,Ghost,Grass,335,59,66,70,44,55,41,6,False
|
||||
GourgeistAverage Size,Ghost,Grass,494,65,90,122,58,75,84,6,False
|
||||
GourgeistSmall Size,Ghost,Grass,494,55,85,122,58,75,99,6,False
|
||||
GourgeistLarge Size,Ghost,Grass,494,75,95,122,58,75,69,6,False
|
||||
GourgeistSuper Size,Ghost,Grass,494,85,100,122,58,75,54,6,False
|
||||
Bergmite,Ice,,304,55,69,85,32,35,28,6,False
|
||||
Avalugg,Ice,,514,95,117,184,44,46,28,6,False
|
||||
Noibat,Flying,Dragon,245,40,30,35,45,40,55,6,False
|
||||
Noivern,Flying,Dragon,535,85,70,80,97,80,123,6,False
|
||||
Xerneas,Fairy,,680,126,131,95,131,98,99,6,True
|
||||
Yveltal,Dark,Flying,680,126,131,95,131,98,99,6,True
|
||||
Zygarde50% Forme,Dragon,Ground,600,108,100,121,81,95,95,6,True
|
||||
Diancie,Rock,Fairy,600,50,100,150,100,150,50,6,True
|
||||
DiancieMega Diancie,Rock,Fairy,700,50,160,110,160,110,110,6,True
|
||||
HoopaHoopa Confined,Psychic,Ghost,600,80,110,60,150,130,70,6,True
|
||||
HoopaHoopa Unbound,Psychic,Dark,680,80,160,60,170,130,80,6,True
|
||||
Volcanion,Fire,Water,600,80,110,120,130,90,70,6,True
|
||||
|
21
pyproject.toml
Normal file
21
pyproject.toml
Normal file
@@ -0,0 +1,21 @@
|
||||
[project]
|
||||
name = "lab-estimation"
|
||||
version = "0.1.0"
|
||||
description = "Estimation lab: fitting and interpreting linear regression models"
|
||||
requires-python = ">=3.11"
|
||||
dependencies = [
|
||||
"pandas>=2.0",
|
||||
"numpy>=1.24",
|
||||
"scikit-learn>=1.3",
|
||||
"matplotlib>=3.7",
|
||||
"seaborn>=0.12",
|
||||
"jupyterlab>=4.0",
|
||||
]
|
||||
|
||||
[build-system]
|
||||
requires = ["hatchling"]
|
||||
build-backend = "hatchling.build"
|
||||
|
||||
[tool.uv]
|
||||
package = false
|
||||
|
||||
61
questions.md
Normal file
61
questions.md
Normal file
@@ -0,0 +1,61 @@
|
||||
# Estimation: Questions
|
||||
|
||||
---
|
||||
|
||||
## Checkpoint 1: Single, Binary, and Ordinal Predictors
|
||||
|
||||
**1. Record the slope, intercept, and test RMSE for your three single-predictor income models.**
|
||||
|
||||
| Predictor | Slope | Intercept | Test RMSE |
|
||||
|------------|-------|-----------|-----------|
|
||||
| `education`| | | |
|
||||
| `health` | | | |
|
||||
| | | | |
|
||||
|
||||
**2. What does the slope mean in plain language for each model?**
|
||||
|
||||
|
||||
**3. `income` ranges from 1 to 8. Is a test RMSE of 1.5 good or bad?**
|
||||
|
||||
|
||||
**4. Which predictor gives the lowest test RMSE?**
|
||||
|
||||
|
||||
**5. `health` is self-reported: people rate their own health from 1 (poor) to 5 (excellent), with no objective measurement behind the number. Two people in similar physical condition might rate themselves differently depending on what they're used to comparing themselves against. How might that kind of bias affect a model trained on `health`?**
|
||||
|
||||
|
||||
**6. For your binary predictor (`exercise` or `no_doctor`), what's the model's predicted income difference between the two groups?**
|
||||
|
||||
|
||||
**7. If you used `exercise`: does this mean exercising more causes higher income? Could it run the other way—does having more income make regular exercise easier (gym access, safer neighborhoods, flexible work hours)? What does this tell you about associations in general?**
|
||||
|
||||
|
||||
**8. Look back at your `education` and `health` models. Is the assumption that each step is evenly spaced more or less reasonable for these than it was for Pokémon's `generation`? Why?**
|
||||
|
||||
---
|
||||
|
||||
## Checkpoint 2: Multiple Regression
|
||||
|
||||
**9. Record the train and test RMSE for your multiple regression model predicting `health` from `education`, `income`, `exercise`, `age`, and `no_doctor`.**
|
||||
|
||||
| | RMSE |
|
||||
|------ | ---- |
|
||||
| Train | |
|
||||
| Test | |
|
||||
|
||||
**10. How does test RMSE compare to your single-predictor models? Does train RMSE diverge from test RMSE, or do they stay close together?**
|
||||
|
||||
|
||||
**11. Suppose an insurance company used a model like this one to predict an applicant's health, and used that prediction in deciding whether or not to provide insurance (or whether to charge more for insurance). What are the potential benefits of this use? The potential harms? Who might be unfairly affected?**
|
||||
|
||||
|
||||
**12. If someone were denied insurance coverage because of this model's prediction, should they have the right to know why? Should they be able to challenge it? What would they need in order to do either?**
|
||||
|
||||
|
||||
---
|
||||
|
||||
## Checkpoint 3: Closing Position
|
||||
|
||||
**13. Under what conditions, if any, is it appropriate to use health survey data like BRFSS to build predictive models for commercial purposes? Write a short paragraph (4–6 sentences).**
|
||||
|
||||
*Your answer:*
|
||||
Reference in New Issue
Block a user