{"id":9586,"date":"2026-09-03T16:58:10","date_gmt":"2026-09-03T07:58:10","guid":{"rendered":"https:\/\/since2020.jp\/media\/?p=9586"},"modified":"2026-09-03T16:58:11","modified_gmt":"2026-09-03T07:58:11","slug":"missing-data-imputation-comparison","status":"publish","type":"post","link":"https:\/\/since2020.jp\/media\/missing-data-imputation-comparison\/","title":{"rendered":"\u6b20\u640d\u5024\u306e\u88dc\u5b8c\u65b9\u6cd5\u30926\u7a2e\u985e\u6bd4\u8f03\u3057\u3066\u307f\u305f"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\u306f\u3058\u3081\u306b<\/h2>\n\n\n\n<p><span class=\"swl-fz u-fz-l\"><strong>\u76ee\u7684\u3068\u80cc\u666f<\/strong><\/span><\/p>\n\n\n\n<p>\u30c7\u30fc\u30bf\u5206\u6790\u3084\u30b3\u30f3\u30da\u306b\u53d6\u308a\u7d44\u3093\u3067\u3044\u308b\u3068\u3001\u6b20\u640d\u5024\u306e\u51e6\u7406\u306f\u907f\u3051\u3066\u901a\u308c\u307e\u305b\u3093\u3002\u300c\u3068\u308a\u3042\u3048\u305a\u5e73\u5747\u3067\u57cb\u3081\u308b\u300d\u3068\u3044\u3046\u9078\u629e\u3092\u3059\u308b\u3053\u3068\u3082\u591a\u3044\u3067\u3059\u304c\u3001\u5b9f\u969b\u306b\u3069\u306e\u304f\u3089\u3044\u7cbe\u5ea6\u306b\u5f71\u97ff\u3059\u308b\u306e\u304b\u3001\u4f53\u611f\u3067\u3057\u304b\u8a9e\u308c\u3066\u3044\u306a\u3044\u3053\u3068\u306b\u6c17\u304c\u3064\u304d\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p>\u305d\u3053\u3067\u4eca\u56de\u306f\u3001\u5b8c\u5168\u306a\u30c7\u30fc\u30bf\u30bb\u30c3\u30c8\u306b\u3042\u3048\u3066\u6b20\u640d\u5024\u3092\u4eba\u5de5\u7684\u306b\u4f5c\u308a\u3001\u6b63\u89e3\u304c\u308f\u304b\u3063\u3066\u3044\u308b\u72b6\u614b\u3067\u3044\u304f\u3064\u304b\u306e\u4fdd\u7ba1\u65b9\u6cd5\u3092\u6bd4\u8f03\u3059\u308b\u3001\u3068\u3044\u3046\u5b9f\u9a13\u3092\u3057\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p><span class=\"swl-fz u-fz-l\"><strong>\u8a66\u3057\u305f\u3053\u3068\u306e\u6982\u8981<\/strong><\/span><\/p>\n\n\n\n<p>\u30fb\u30c7\u30fc\u30bf\u30bb\u30c3\u30c8\uff1aCalifornia Housing(scikit-learn\u7d44\u307f\u8fbc\u307f\u3001\u6b20\u640d\u306a\u3057\u306e\u5b8c\u5168\u30c7\u30fc\u30bf)<br>\u30fb\u6b20\u640d\u306e\u3055\u305b\u65b9\uff1aMCAR(\u5b8c\u5168\u30e9\u30f3\u30c0\u30e0\u306a\u6b20\u640d)\u309210%\u300130%\u300150%\u306e3\u30d1\u30bf\u30fc\u30f3\u3067\u767a\u751f\u3055\u305b\u308b<br>\u30fb\u6bd4\u8f03\u3057\u305f\u88dc\u5b8c\u65b9\u6cd5(6\u7a2e\u985e)<br>\u30001. \u5e73\u5747\u5024<br>\u30002. \u4e2d\u592e\u5024<br>\u30003. KNN(K\u8fd1\u508d\u6cd5)<br>   4. MICE(InteractiveImputer)<br>   5. MissForest(InteractiveImputer + RamdomForest)<br>\u30006. Autoencoder(\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306b\u3088\u308b\u5fa9\u5143)<br>\u30fb\u3082\u3046\u4e00\u3064\u306e\u8ef8\uff1a\u300c\u4ed6\u306e\u7279\u5fb4\u91cf\u3068\u76f8\u95a2\u304c\u5f37\u3044\u5217\u300d\u3068\u300c\u307b\u307c\u7121\u76f8\u95a2\u306a\u5217\u300d\u3001\u3069\u3061\u3089\u304b\u3092\u6b20\u640d\u3055\u305b\u308b\u304b\u306b\u3088\u3063\u3066\u7d50\u679c\u304c\u3069\u3046\u5909\u308f\u308b\u306e\u304b\u3082\u691c\u8a3c<br>\u30fb\u8a55\u4fa1\u65b9\u6cd5\uff1a(1)\u771f\u306e\u5024\u3068\u306e\u8aa4\u5dee(\u88dc\u5b8c\u7cbe\u5ea6\u305d\u306e\u3082\u306e)\u3001(2)\u88dc\u5b8c\u5f8c\u306e\u30c7\u30fc\u30bf\u3067\u5b66\u7fd2\u3057\u305f\u30e2\u30c7\u30eb\u306e\u4e88\u6e2c\u7cbe\u5ea6\u306e\uff12\u8ef8\u3067\u8a55\u4fa1<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u8a2d\u5b9a\u74b0\u5883<\/h2>\n\n\n\n<p><span class=\"swl-fz u-fz-l\"><strong>\u4f7f\u7528\u3057\u305f\u30c4\u30fc\u30eb\u3068\u30d0\u30fc\u30b8\u30e7\u30f3<\/strong><\/span><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>\u30c4\u30fc\u30eb<\/td><td>\u7528\u9014<\/td><\/tr><tr><td>Google Colab<\/td><td>\u5b9f\u884c\u74b0\u5883<\/td><\/tr><tr><td>Python<\/td><td>3.12<\/td><\/tr><tr><td>scikit-learn<\/td><td>\u30c7\u30fc\u30bf\u306e\u8aad\u307f\u8fbc\u307f\u3001\u5404\u7a2eImputer\u30fbRandomForest<\/td><\/tr><tr><td>TensorFlow\/Keras<\/td><td>Autoencoder\u306e\u5b9f\u88c5<\/td><\/tr><tr><td>pandas\/numpy<\/td><td>\u30c7\u30fc\u30bf\u64cd\u4f5c<\/td><\/tr><tr><td>matplotlib<\/td><td>\u7d50\u679c\u306e\u53ef\u8996\u5316<\/td><\/tr><tr><td>japanize-matplotlib<\/td><td>\u30b0\u30e9\u30d5\u306e\u65e5\u672c\u8a9e\u8868\u793a<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><span class=\"swl-fz u-fz-l\"><strong>\u521d\u671f\u8a2d\u5b9a\u3068\u6e96\u5099<\/strong><\/span><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>!pip install japanize-matplotlib -q  \uff03 \u65e5\u672c\u8a9e\u306e\u30b0\u30e9\u30d5\u8868\u793a\u306e\u305f\u3081\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u8ffd\u52a0\n\nimport numpy as np\nimport pandas as pd\nimport matplotlib.pyplot as plt\nimport japanize_matplotlib  # matplotlib\u306e\u65e5\u672c\u8a9e\u6587\u5b57\u5316\u3051\u5bfe\u7b56\n\nfrom sklearn.datasets import fetch_california_housing\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.ensemble import RandomForestRegressor\nfrom sklearn.metrics import mean_squared_error\nfrom sklearn.impute import SimpleImputer, KNNImputer\nfrom sklearn.experimental import enable_iterative_imputer  # IterativeImputer\u6709\u52b9\u5316\u306b\u5fc5\u9808\nfrom sklearn.impute import IterativeImputer\n\nimport tensorflow as tf\nfrom tensorflow.keras import layers, models\n\nRANDOM_STATE = 42\nnp.random.seed(RANDOM_STATE)\ntf.random.set_seed(RANDOM_STATE)<\/code><\/pre>\n\n\n\n<p>\u203b\u518d\u73fe\u6027\u306e\u305f\u3081\u306b\u4e71\u6570\u30b7\u30fc\u30c9\u3092\u56fa\u5b9a\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u5b9f\u88c5\u624b\u9806<\/h2>\n\n\n\n<p><span class=\"swl-fz u-fz-l\"><strong>\u30b9\u30c6\u30c3\u30d71\uff1a\u30c7\u30fc\u30bf\u306e\u8aad\u307f\u8fbc\u307f\u3068\u30d9\u30fc\u30b9\u30e9\u30a4\u30f3\u306e\u8a08\u6e2c<\/strong><\/span><br>\u307e\u305a\u306f\u6b20\u640d\u304c\u4e00\u5207\u306a\u3044\u72b6\u614b\u3067\u306e\u30e2\u30c7\u30eb\u306e\u7cbe\u5ea6\u3092\u300c\u30d9\u30fc\u30b9\u30e9\u30a4\u30f3\u300d\u3068\u3057\u3066\u6e2c\u3063\u3066\u304a\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>data = fetch_california_housing(as_frame=True)\ndf = data.frame\nX = df.drop(columns=&#091;'MedHouseVal'])\ny = df&#091;'MedHouseVal']\n\nX_train_full, X_test, y_train_full, y_test = train_test_split(\n    X, y, test_size=0.2, random_state=RANDOM_STATE\n)\n\nbaseline_model = RandomForestRegressor(n_estimators=200, random_state=RANDOM_STATE, n_jobs=-1)\nbaseline_model.fit(X_train_full, y_train_full)\nbaseline_rmse = np.sqrt(mean_squared_error(y_test, baseline_model.predict(X_test)))<\/code><\/pre>\n\n\n\n<p><span class=\"swl-fz u-fz-l\"><strong>\u30b9\u30c6\u30c3\u30d72\uff1a\u6b20\u640d\u3055\u305b\u308b\u5217\u3092\u300c\u76f8\u95a2\u306e\u5f37\u3055\u3067\u9078\u3076\u300d<\/strong><\/span><br>KNN\u3084MICE\u306e\u3088\u3046\u306a\u88dc\u5b8c\u624b\u6cd5\u306f\u300c\u4ed6\u306e\u5217\u306e\u5024\u304b\u3089\u4e88\u6e2c\u3059\u308b\u300d\u3068\u3044\u3046\u8003\u3048\u65b9\u304c\u6839\u5e95\u306b\u3042\u308a\u307e\u3059\u3002\u3064\u307e\u308a\u3001\u4ed6\u306e\u5217\u3068\u76f8\u95a2\u304c\u5f37\u3044\u5217\u3092\u6b20\u640d\u3055\u305b\u305f\u5834\u5408\u3068\u307b\u307c\u7121\u76f8\u95a2\u306a\u5217\u3092\u6b20\u640d\u3055\u305b\u305f\u5834\u5408\u3068\u3067\u306f\u3001\u88dc\u5b8c\u65b9\u6cd5\u306e\u52b9\u304d\u65b9\u304c\u5909\u308f\u308b\u306f\u305a\u3067\u3059\u3002<br>\u3053\u306e\u4eee\u8aac\u3092\u691c\u8a3c\u3059\u308b\u305f\u3081\u3001\u6c7a\u3081\u6253\u3061\u3067\u306f\u306a\u304f\u76f8\u95a2\u884c\u5217\u304b\u3089\u52d5\u7684\u306b\u5217\u3092\u9078\u3073\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>corr_matrix = X.corr()\navg_abs_corr = (corr_matrix.abs().sum() - 1) \/ (corr_matrix.shape&#091;1] - 1)\navg_abs_corr_sorted = avg_abs_corr.sort_values(ascending=False)\n\nSTRONG_COL = avg_abs_corr_sorted.index&#091;0]   # \u6700\u3082\u4ed6\u5217\u3068\u76f8\u95a2\u304c\u5f37\u3044\u5217\nWEAK_COL = avg_abs_corr_sorted.index&#091;-1]    # \u6700\u3082\u4ed6\u5217\u3068\u7121\u76f8\u95a2\u306b\u8fd1\u3044\u5217<\/code><\/pre>\n\n\n\n<p><span class=\"swl-fz u-fz-l\"><strong>\u30b9\u30c6\u30c3\u30d73\uff1a\u6b20\u640d\u3092\u4eba\u5de5\u7684\u306b\u767a\u751f\u3055\u305b\u308b<\/strong><\/span><br>\u5b8c\u5168\u306a\u30c7\u30fc\u30bf\u304b\u3089\u30e9\u30f3\u30c0\u30e0\u306b\u5024\u3092\u53d6\u308a\u9664\u304d\u3001\u771f\u306e\u5024\u3092\u5225\u9014\u88dc\u5b8c\u3057\u3066\u304a\u304d\u307e\u3059\u3002\u3053\u308c\u306b\u3088\u308a\u3001\u5f8c\u3067\u300c\u88dc\u5b8c\u5024vs\u771f\u306e\u5024\u300d\u306e\u8aa4\u5dee\u3092\u76f4\u63a5\u8a08\u7b97\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def introduce_missing_mcar(X, columns, missing_rate, seed=0):\n    X_missing = X.copy()\n    rng = np.random.RandomState(seed)\n    true_values = {}\n    masks = {}\n    for col in columns:\n        n = len(X_missing)\n        n_missing = int(n * missing_rate)\n        idx = rng.choice(n, size=n_missing, replace=False)\n        mask = np.zeros(n, dtype=bool)\n        mask&#091;idx] = True\n        true_values&#091;col] = X_missing.loc&#091;mask, col].copy()\n        X_missing.loc&#091;mask, col] = np.nan\n        masks&#091;col] = mask\n    return X_missing, true_values, masks<\/code><\/pre>\n\n\n\n<p><span class=\"swl-fz u-fz-l\"><strong>\u30b9\u30c6\u30c3\u30d74\uff1a6\u7a2e\u985e\u306e\u4fdd\u7ba1\u65b9\u6cd5\u3092\u5b9f\u88c5\u3059\u308b<\/strong><\/span><br>\u5168\u3066\u300c\u6b20\u640d\u3042\u308a\u306eDataFrame\u3092\u53d7\u3051\u53d6\u308a\u3001\u4fdd\u7ba1\u305a\u307fDataFrame\u3092\u8fd4\u3059\u300d\u3068\u3044\u3046\u540c\u3058\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306b\u63c3\u3048\u307e\u3057\u305f\u3002\u7279\u306b\u30e6\u30cb\u30fc\u30af\u306a\u306e\u306f\u4ee5\u4e0b\u306e\uff12\u3064\u3067\u3059\u3002<\/p>\n\n\n\n<p><strong>MissForest(RandomForest\u30d9\u30fc\u30b9\u306e\u88dc\u5b8c)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def impute_missforest(X_missing):\n    imputer = IterativeImputer(\n        estimator=RandomForestRegressor(n_estimators=50, random_state=RANDOM_STATE, n_jobs=-1),\n        max_iter=5,\n        random_state=RANDOM_STATE,\n    )\n    return pd.DataFrame(imputer.fit_transform(X_missing), columns=X_missing.columns, index=X_missing.index)<\/code><\/pre>\n\n\n\n<p><strong>Autoencoder\u306b\u3088\u308b\u88dc\u5b8c(\u4eee\u57cb\u3081\u2192\u30cb\u30e5\u30fc\u30e9\u30eb\u30cd\u30c3\u30c8\u3067\u5fa9\u5143\u2192\u7f6e\u304d\u63db\u3048\u3001\u3092\u6570\u56de\u7e70\u308a\u8fd4\u3059)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def impute_autoencoder(X_missing, encoding_dim=4, epochs=60, n_iterations=2):\n    col_mean = X_missing.mean()\n    col_std = X_missing.std()\n    mask = X_missing.isnull().values\n    X_filled = X_missing.fillna(col_mean)\n    X_scaled_values = ((X_filled - col_mean) \/ col_std).values.astype(np.float32)\n    input_dim = X_scaled_values.shape&#091;1]\n\n    for _ in range(n_iterations):\n        autoencoder = models.Sequential(&#091;\n            layers.Input(shape=(input_dim,)),\n            layers.Dense(encoding_dim, activation='relu'),\n            layers.Dense(input_dim, activation='linear'),\n        ])\n        autoencoder.compile(optimizer='adam', loss='mse')\n        autoencoder.fit(X_scaled_values, X_scaled_values, epochs=epochs, batch_size=64, verbose=0)\n        X_reconstructed = autoencoder.predict(X_scaled_values, verbose=0)\n        X_scaled_values&#091;mask] = X_reconstructed&#091;mask]\n\n    X_scaled_final = pd.DataFrame(X_scaled_values, columns=X_missing.columns, index=X_missing.index)\n    return X_scaled_final * col_std + col_mean<\/code><\/pre>\n\n\n\n<p><span class=\"swl-fz u-fz-l\"><strong>\u30b9\u30c6\u30c3\u30d75\uff1a\u5b9f\u9a13\u30eb\u30fc\u30d7\u3092\u56de\u3059<\/strong><\/span><br>\u300c\u76f8\u95a2\u304c\u5f37\u3044\u5217\u300d\u300c\u76f8\u95a2\u304c\u5f31\u3044\u5217\u300d\u306e2\u30d1\u30bf\u30fc\u30f3\u00d7\u6b20\u640d\u7387(10%\u30fb30%\u30fb50%)\u00d76\u624b\u6cd5\u3001\u3067\u5168\u7d44\u307f\u5408\u308f\u305b\u3092\u5b9f\u884c\u3057\u3001(1)\u88dc\u5b8c\u7cbe\u5ea6 (2)\u4e0b\u6d41\u30e2\u30c7\u30eb\u306e\u7cbe\u5ea6\u3092\u8a18\u9332\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SCENARIOS = {'strong_corr': STRONG_COL, 'weak_corr': WEAK_COL}\nMISSING_RATES = &#091;0.1, 0.3, 0.5]\nresults = &#091;]\n\nfor scenario_name, col in SCENARIOS.items():\n    for rate in MISSING_RATES:\n        X_missing, true_values, masks = introduce_missing_mcar(X_train_full, &#091;col], rate, seed=RANDOM_STATE)\n        mask = masks&#091;col]\n        true_v = true_values&#091;col].values\n\n        for name, impute_fn in IMPUTERS.items():\n            X_imputed = impute_fn(X_missing)\n            imputed_v = X_imputed.loc&#091;mask, col].values\n            imputation_rmse = np.sqrt(mean_squared_error(true_v, imputed_v))\n\n            model = RandomForestRegressor(n_estimators=200, random_state=RANDOM_STATE, n_jobs=-1)\n            model.fit(X_imputed, y_train_full)\n            downstream_rmse = np.sqrt(mean_squared_error(y_test, model.predict(X_test)))\n\n            results.append({\n                'scenario': scenario_name, 'column': col, 'missing_rate': rate,\n                'method': name, 'imputation_rmse': imputation_rmse, 'downstream_rmse': downstream_rmse,\n            })<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u7d50\u679c<\/h2>\n\n\n\n<p><span class=\"swl-fz u-fz-l\"><strong>\u5b9f\u884c\u7d50\u679c<\/strong><\/span><br>storing_corr(\u4ed6\u306e\u7279\u5fb4\u91cf\u3068\u76f8\u95a2\u304c\u5f37\u3044\u5217  =  AveRooms AveBedrms\u30680.85\u3001MedInc\u30680.33\u306e\u76f8\u95a2)\u3068\u3001weak_corr(\u307b\u307c\u7121\u76f8\u95a2\u306a\u5217 = Ave0ccup \u3069\u306e\u5217\u3068\u3082\u76f8\u95a2\u4fc2\u65700.1\u672a\u6e80)\u306b\u3064\u3044\u3066\u3001\u5b9f\u969b\u306b\u5168\u6b20\u640d\u7387(10%\/30%\/50%)\u00d76\u624b\u6cd5\u3092\u5b9f\u884c\u3057\u305f\u7d50\u679c\u3092\u30b0\u30e9\u30d5\u306b\u307e\u3068\u3081\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p><span class=\"swl-fz u-fz-l\"><strong>\u30b0\u30e9\u30d5<\/strong><\/span><br>\u307e\u305a\u306f\u4eca\u56de\u306e\u5b9f\u9a13\u306e\u524d\u63d0\u3068\u306a\u308b\u3001\u7279\u5fb4\u91cf\u9593\u306e\u76f8\u95a2\u884c\u5217\u3067\u3059\u3002\u3053\u3053\u304b\u3089\u76f8\u95a2\u304c\u5f37\u3044\u5217\u3068\u3057\u3066AveRooms(AveBedrms\u30680.85\u3001MedInc\u30680.33)\u3001\u300c\u307b\u307c\u7121\u76f8\u95a2\u306a\u5217\u300d\u3068\u3057\u3066Ave0ccup(\u5168\u3066\u306e\u5217\u3068\u306e\u76f8\u95a2\u4fc2\u6570\u304c0.1\u672a\u6e80)\u3092\u81ea\u52d5\u9078\u5b9a\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"823\" src=\"https:\/\/since2020.jp\/media\/wp-content\/uploads\/2026\/09\/fig_correlation_heatmap-1024x823.png\" alt=\"\" class=\"wp-image-9588\" srcset=\"https:\/\/since2020.jp\/media\/wp-content\/uploads\/2026\/09\/fig_correlation_heatmap-1024x823.png 1024w, https:\/\/since2020.jp\/media\/wp-content\/uploads\/2026\/09\/fig_correlation_heatmap-300x241.png 300w, https:\/\/since2020.jp\/media\/wp-content\/uploads\/2026\/09\/fig_correlation_heatmap-768x617.png 768w, https:\/\/since2020.jp\/media\/wp-content\/uploads\/2026\/09\/fig_correlation_heatmap.png 1386w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><strong>\u76f8\u95a2\u304c\u5f37\u3044\u5217(AveRooms)\u3092\u6b20\u640d\u3055\u305b\u305f\u5834\u5408<\/strong><\/p>\n\n\n\n<div class=\"wp-block-group is-row is-nowrap is-layout-flex wp-container-core-group-is-layout-ad2f72ca wp-block-group-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"730\" src=\"https:\/\/since2020.jp\/media\/wp-content\/uploads\/2026\/09\/fig_strong_corr_downstream-1-1024x730.png\" alt=\"\" class=\"wp-image-9590\" srcset=\"https:\/\/since2020.jp\/media\/wp-content\/uploads\/2026\/09\/fig_strong_corr_downstream-1-1024x730.png 1024w, https:\/\/since2020.jp\/media\/wp-content\/uploads\/2026\/09\/fig_strong_corr_downstream-1-300x214.png 300w, https:\/\/since2020.jp\/media\/wp-content\/uploads\/2026\/09\/fig_strong_corr_downstream-1-768x547.png 768w, https:\/\/since2020.jp\/media\/wp-content\/uploads\/2026\/09\/fig_strong_corr_downstream-1.png 1238w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"758\" src=\"https:\/\/since2020.jp\/media\/wp-content\/uploads\/2026\/09\/fig_strong_corr_imputation-1024x758.png\" alt=\"\" class=\"wp-image-9591\" srcset=\"https:\/\/since2020.jp\/media\/wp-content\/uploads\/2026\/09\/fig_strong_corr_imputation-1024x758.png 1024w, https:\/\/since2020.jp\/media\/wp-content\/uploads\/2026\/09\/fig_strong_corr_imputation-300x222.png 300w, https:\/\/since2020.jp\/media\/wp-content\/uploads\/2026\/09\/fig_strong_corr_imputation-768x569.png 768w, https:\/\/since2020.jp\/media\/wp-content\/uploads\/2026\/09\/fig_strong_corr_imputation.png 1218w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n\n<p><strong>\u76f8\u95a2\u304c\u5f31\u3044\u5217(Ave0ccup)\u3092\u6b20\u640d\u3055\u305b\u305f\u5834\u5408<\/strong><\/p>\n\n\n\n<div class=\"wp-block-group is-row is-nowrap is-layout-flex wp-container-core-group-is-layout-ad2f72ca wp-block-group-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"750\" src=\"https:\/\/since2020.jp\/media\/wp-content\/uploads\/2026\/09\/fig_weak_corr_downstream-1024x750.png\" alt=\"\" class=\"wp-image-9592\" srcset=\"https:\/\/since2020.jp\/media\/wp-content\/uploads\/2026\/09\/fig_weak_corr_downstream-1024x750.png 1024w, https:\/\/since2020.jp\/media\/wp-content\/uploads\/2026\/09\/fig_weak_corr_downstream-300x220.png 300w, https:\/\/since2020.jp\/media\/wp-content\/uploads\/2026\/09\/fig_weak_corr_downstream-768x562.png 768w, https:\/\/since2020.jp\/media\/wp-content\/uploads\/2026\/09\/fig_weak_corr_downstream.png 1240w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"751\" src=\"https:\/\/since2020.jp\/media\/wp-content\/uploads\/2026\/09\/fig_weak_corr_imputation-1024x751.png\" alt=\"\" class=\"wp-image-9593\" srcset=\"https:\/\/since2020.jp\/media\/wp-content\/uploads\/2026\/09\/fig_weak_corr_imputation-1024x751.png 1024w, https:\/\/since2020.jp\/media\/wp-content\/uploads\/2026\/09\/fig_weak_corr_imputation-300x220.png 300w, https:\/\/since2020.jp\/media\/wp-content\/uploads\/2026\/09\/fig_weak_corr_imputation-768x563.png 768w, https:\/\/since2020.jp\/media\/wp-content\/uploads\/2026\/09\/fig_weak_corr_imputation.png 1230w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n\n<p><span class=\"swl-fz u-fz-l\"><strong>\u6210\u529f\u4f8b<\/strong><\/span><\/p>\n\n\n\n<p><strong>\u76f8\u95a2\u304c\u5f37\u3044\u5217\u3067\u306fMICE\u30fbMissForest\u304c\u5727\u52dd<\/strong>AveRooms\u306e\u6b20\u640d\u738710%\u6642\u70b9\u3067\u3001Mean\/Median\/KNN\u306e\u88dc\u5b8cRMSE\u304c2.17\u301c2.44\u306b\u5bfe\u3057\u3001MICE\u306f0.82\u3001MissForest\u306f0.64\u3002\u4ed6\u306e\u76f8\u95a2\u306e\u5f37\u3044\u5217(AveBedrms)\u304b\u3089\u4e88\u6e2c\u3059\u308b\u4ed5\u7d44\u307f\u304c\u6a5f\u80fd\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p><strong>\u76f8\u95a2\u304c\u5f37\u3044\u5217\u3067\u306f\u624b\u6cd5\u611f\u306e\u5dee\u304c\u307b\u307c\u6d88\u3048\u308b<\/strong>AveRooms30%\u30fb50%\u3068\u3082\u5168\u624b\u6cd5\u304c16\u301c18\u306e\u7bc4\u56f2\u306b\u53ce\u307e\u308a\u3001\u5927\u5dee\u306a\u3057\u3002\u76f8\u95a2\u304c\u306a\u3044\u3068\u9ad8\u5ea6\u306a\u624b\u6cd5\u3082\u300c\u5f53\u3066\u305a\u3063\u307d\u3046\u300d\u306e\u57df\u3092\u51fa\u306a\u3044\u3053\u3068\u304c\u308f\u304b\u308b\u3002<\/p>\n\n\n\n<p><span class=\"swl-fz u-fz-l\"><strong>\u5931\u6557\u4f8b\u30fb\u60f3\u5b9a\u5916\u3060\u3063\u305f\u70b9<\/strong><\/span><br><div><span class=\"swl-fz u-fz-l\"><\/span><\/div><\/p>\n\n\n\n<p>\u30fb\u88dc\u5b8c\u7cbe\u5ea6\u304c\u3044\u3044\u2260\u4e0b\u6d41\u30e2\u30c7\u30eb\u304c\u826f\u3044\uff1aAveRooms50%\u6b20\u640d\u3067\u3001MissForest\u306f\u88dc\u5b8cRMSE\u304c\u6700\u826f(1.30)\u306a\u306e\u306b\u4e0b\u6d41RMSE\u306f\u6700\u60aa(0.527\u3001\u4ed6\u306f0.506\u301c0.508)\u3002\u771f\u306e\u5024\u306b\u8fd1\u3065\u3051\u308b\u3053\u3068\u3068\u30e2\u30c7\u30eb\u304c\u5b66\u7fd2\u3057\u3084\u3059\u304f\u306a\u308b\u3053\u3068\u306f\u5225\u7269\u3067\u3057\u305f\u3002<br>\u30fbKNN\/Autoencoder\u304c\u76f8\u95a2\u5217\u3067\u5e73\u5747\u5024\u306b\u5b8c\u6557\uff1aAve0ccup10%\u6b20\u640d\u3067\u3001KNN(3.29)\u30fbAutoencoder(3.45)\u304cMean(0.86)\u3088\u308a\u5927\u5e45\u306b\u60aa\u5316\u3002Population\u306a\u3069\u5927\u304d\u306a\u30b9\u30b1\u30fc\u30eb\u306e\u5217\u304c\u8ddd\u96e2\u30fb\u640d\u5931\u8a08\u7b97\u3092\u652f\u914d\u3057\u305f\u53ef\u80fd\u6027\u304c\u3042\u308a\u3001\u6a19\u6e96\u5316\u3092\u631f\u3080\u3079\u304d\u3060\u3063\u305f\u3002<br>\u30fb\u7279\u5fb4\u91cf\u9593\u306e\u76f8\u95a2\u306e\u5f31\u3055\u2260\u76ee\u7684\u5909\u6570\u3078\u306e\u5f71\u97ff\u306e\u5c0f\u3055\u3055\uff1aAve0ccup\u6b20\u640d\u6642\u306e\u4e0b\u6d41RMSE\u60aa\u5316\u5e45\u306f\u3001\u3080\u3057\u308dAveRooms(\u76f8\u95a2\u304c\u5f37\u3044\u5217)\u3088\u308a\u5927\u304d\u304f\u51fa\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u307e\u3068\u3081<\/h2>\n\n\n\n<p><span class=\"swl-fz u-fz-l\"><strong>\u5f97\u3089\u308c\u305f\u77e5\u898b<\/strong><\/span><\/p>\n\n\n\n<p>\u30fb\u76f8\u95a2\u304c\u5f37\u3044\u5217\u306a\u3089MICE\u30fbMissForest\u304c\u6709\u52b9\u3001\u76f8\u95a2\u304c\u5f31\u3044\u5217\u306a\u3089\u5e73\u5747\u5024\u3067\u5341\u5206\u306a\u5834\u5408\u304c\u591a\u3044<br>\u30fb\u88dc\u5b8c\u7cbe\u5ea6\u3068\u4e0b\u6d41\u30e2\u30c7\u30eb\u306e\u7cbe\u5ea6\u306f\u5fc5\u305a\u3057\u3082\u4e00\u81f4\u3057\u306a\u3044(MissForest\u304c\u597d\u4f8b)<br>\u30fbKNN\/Autoencoder\u306f\u30b9\u30b1\u30fc\u30eb\u3055\u306b\u5f31\u304f\u3001\u6a19\u6e96\u5316\u306a\u3057\u3067\u306f\u672c\u6765\u306e\u6027\u80fd\u3092\u767a\u63ee\u3067\u304d\u306a\u3044<\/p>\n\n\n\n<p><div><span class=\"swl-fz u-fz-l\"><\/span><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u306f\u3058\u3081\u306b \u76ee\u7684\u3068\u80cc\u666f \u30c7\u30fc\u30bf\u5206\u6790\u3084\u30b3\u30f3\u30da\u306b\u53d6\u308a\u7d44\u3093\u3067\u3044\u308b\u3068\u3001\u6b20\u640d\u5024\u306e\u51e6\u7406\u306f\u907f\u3051\u3066\u901a\u308c\u307e\u305b\u3093\u3002\u300c\u3068\u308a\u3042\u3048\u305a\u5e73\u5747\u3067\u57cb\u3081\u308b\u300d\u3068\u3044\u3046\u9078\u629e\u3092\u3059\u308b\u3053\u3068\u3082\u591a\u3044\u3067\u3059\u304c\u3001\u5b9f\u969b\u306b\u3069\u306e\u304f\u3089\u3044\u7cbe\u5ea6\u306b\u5f71\u97ff\u3059\u308b\u306e\u304b\u3001\u4f53\u611f\u3067\u3057\u304b\u8a9e\u308c\u3066\u3044\u306a\u3044\u3053\u3068\u306b\u6c17\u304c [&hellip;]<\/p>\n","protected":false},"author":99,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"content-type":"","swell_btn_cv_data":"","footnotes":"","_wp_rev_ctl_limit":""},"categories":[1249],"tags":[39,26,1184],"class_list":["post-9586","post","type-post","status-publish","format-standard","hentry","category-knowledge","tag-39","tag-26","tag-1184"],"_links":{"self":[{"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/posts\/9586","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/users\/99"}],"replies":[{"embeddable":true,"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/comments?post=9586"}],"version-history":[{"count":3,"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/posts\/9586\/revisions"}],"predecessor-version":[{"id":9595,"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/posts\/9586\/revisions\/9595"}],"wp:attachment":[{"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/media?parent=9586"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/categories?post=9586"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/since2020.jp\/media\/wp-json\/wp\/v2\/tags?post=9586"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}