通所介護(デイサービス)の翌月の日別の利用者数を、利用予定と休み・入院の傾向から見込み、送迎便と職員の配置の案を出す
翌月の利用予定と、過去の休み・入院の記録から、通所介護の事業所ごとに日ごとの実際に来る人数を見込みます。その人数を、送迎の方面ごとの便数と介護職員の必要数に直し、配置の案として管理者に渡します。
- 連携・自動化
- Python
- 対象業界
- 介護/医療
- 対象部門
- 経営企画
- 対象業務
- 比較検討/集計・分析
- 主な課題
- 人手が足りない/判断に時間がかかる/属人化している
- AIで行う処理
- 予測
- 主な効果
- 判断支援/属人化解消/工数削減
- 導入難易度
- ★★★★☆
- 実装レベル
- 本格構成
- 費用感
- 個別開発(大)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 毎月25日ごろ、各事業所の管理者が介護ソフトで翌月の利用予定を日ごとに開く
- 日ごとに、予定に入っている人数を方面ごとに数える
- 入院中の人、よく休む人、最近体調を崩している人を思い出し、休みそうな人数を差し引く
- 方面ごとの人数と車いすの人数から、必要な便数を決める
- 来る人数から介護職員の人数を考え、勤務表の案に書く
- 3事業所の表を本部に送り、本部が車両と職員の融通を決める
- 当日、休みの連絡が重なれば送迎便を減らし、職員には別の業務を回す。来る人が多ければ、管理者や生活相談員が送迎に出る
- 自動毎月25日の夜、介護ソフトから翌月の利用予定と、過去2年分の予定と実績を書き出す
- 自動Python が、利用者ごと・予定日ごとの組を作り、入院中の人と利用終了の届けが出た人に印を付ける
- 自動過去の記録から学ばせたモデルで、予定日ごとに「来る確からしさ」を出す
- 自動事業所・日・方面ごとに確からしさを足し合わせ、人数を真ん中と多め(9割の側)の2本で出す
- 自動方面ごとの多めの人数と車いすの人数から便数の案を、事業所ごとの多めの人数から介護職員の必要数を出す
- 自動予定人数が利用定員に近い日、見込みの幅が広い日、学ばせた記録が少ない利用者が多い日に印を付ける
- 人各事業所の管理者が、印の付いた日だけを確かめ、人数と便数を直すか決める
- 人本部が3事業所の案を並べ、職員の融通を決めて勤務表を組む
- 自動毎週木曜、翌週分の予定の変更と入院の連絡を取り込んで見込みを出し直し、変わった日だけを知らせる
- 自動当日の実績を取り込み、見込みとの差を日ごとに残す
各工程の詳しい説明を読む
- 毎月25日ごろ、各事業所の管理者が介護ソフトで翌月の利用予定を日ごとに開く
- 日ごとに、予定に入っている人数を方面ごとに数える
- 入院中の人、よく休む人、最近体調を崩している人を思い出し、休みそうな人数を差し引く
- 方面ごとの人数と車いすの人数から、必要な便数を決める
- 来る人数から介護職員の人数を考え、勤務表の案に書く
- 3事業所の表を本部に送り、本部が車両と職員の融通を決める
- 当日、休みの連絡が重なれば送迎便を減らし、職員には別の業務を回す。来る人が多ければ、管理者や生活相談員が送迎に出る
(a)差し引きが記憶になっている。 3番目の「休みそうな人数」は、管理者が利用者一人ひとりを覚えていることで成り立っています。長く勤めている管理者の事業所は当たり、替わったばかりの事業所は外れます。 本部から見ると、事業所ごとに人数の出し方が違います。
(b)多めに見るか少なめに見るかが決まっていない。 少なめに見て外れると送迎が回らず、多めに見て外れると職員が余ります。どちらに寄せるかが管理者ごとに違い、 同じ予定人数でも事業所によって配置の厚さが変わります。
(c)入院と退院が反映されない。 入院の連絡は、翌月の予定を組んだ後で届くことがあります。予定表には名前が残ったまま、 配置の案は入院前の人数で組まれます。退院の時期も、家族からの連絡がくるまで分かりません。
(d)外れた日の記録が残らない。 当日に人が余った日、足りなかった日は、その場で調整して終わります。どの日に、どちらへ、何人外れたかが残らないので、 翌月の読み方が直りません。
- 【自動】 毎月25日の夜、介護ソフトから翌月の利用予定と、過去2年分の予定と実績を書き出す
- 【自動】 Python が、利用者ごと・予定日ごとの組を作り、入院中の人と利用終了の届けが出た人に印を付ける
- 【自動】 過去の記録から学ばせたモデルで、予定日ごとに「来る確からしさ」を出す
- 【自動】 事業所・日・方面ごとに確からしさを足し合わせ、人数を真ん中と多め(9割の側)の2本で出す
- 【自動】 方面ごとの多めの人数と車いすの人数から便数の案を、事業所ごとの多めの人数から介護職員の必要数を出す
- 【自動】 予定人数が利用定員に近い日、見込みの幅が広い日、学ばせた記録が少ない利用者が多い日に印を付ける
- 【人】 各事業所の管理者が、印の付いた日だけを確かめ、人数と便数を直すか決める
- 【人】 本部が3事業所の案を並べ、職員の融通を決めて勤務表を組む
- 【自動】 毎週木曜、翌週分の予定の変更と入院の連絡を取り込んで見込みを出し直し、変わった日だけを知らせる
- 【自動】 当日の実績を取り込み、見込みとの差を日ごとに残す
7番目が、この設計の分かれ目です。管理者が見るのは24日分の全部ではありません。 印の付いていない日はそのまま通し、印の付いた日だけを、利用者の最近の様子と照らして直します。 全日を見直す設計にすると、時間はほとんど減りません。
10番目を省かないでください。 見込みと実際の差を残さないと、第3章の(d)と同じく、どちらにずれているかが分からなくなります。
02今回想定するシステム構成
介護ソフト(利用予定と実績、表の形で書き出し) │ 利用者ID・予定日・方面・実績区分(来所/休み/入院)・要介護度 ▼【トリガー】毎月25日の夜/毎週木曜の夜 Python(pandas) ├──▶ 入院・退院と利用終了の記録で、予定に印を付ける ▼ scikit-learn(HistGradientBoostingClassifier + 確率の補正) │ 利用者ごと・予定日ごとの「来る確からしさ」 ▼ Python ── 事業所・日・方面ごとに足し合わせ、真ん中と多めの人数を出す ▼ Python ── 車両の一覧から便数の案、人員基準の式から介護職員の必要数 ▼ 【人が印の付いた日だけ確認】── 管理者 ▼ 本部の配置表(事業所 × 日の人数・便数・職員)── 勤務表の作成へ
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 実行環境 | Python(pandas・scikit-learn) | R |
| 処理エンジン | scikit-learn の HistGradientBoostingClassifier(CalibratedClassifierCV で確率を補正) | LightGBM、statsmodels のロジスティック回帰 |
| 集計 | Python(確からしさの足し合わせと、便数・職員数への換算) | 介護ソフトの帳票 |
| データの取得元 | 介護ソフトの利用予定・実績の書き出し | 介護ソフトの連携の機能 |
| 結果の出力先 | 本部の共有フォルダの配置表 | 職員の勤務表 |
介護ソフトと勤務表は、新しく足すものではありません。 介護ソフトからは書き出すだけで、この構成から予定や実績を書き換えることはしません。勤務表に渡すのは人数の案までで、誰がどの日に入るかは本部と管理者が決めます。
土台になるのは、scikit-learn の HistGradientBoostingClassifier です。 ヒストグラムに基づく勾配ブースティングの分類器で、欠けた値(NaN)をそのまま扱えます。 学習の際、分かれ目ごとに欠けた値を左右どちらに送るかを、得られる改善の大きさから学びます。入院歴の無い人の「退院からの日数」のように、値が無いことに意味がある項目を、埋めずに渡せます。
カテゴリの項目も、そのまま渡せます。 categorical_features の既定は "from_dtype" で、データフレームの列の型がカテゴリなら、カテゴリとして扱われます。曜日、方面、要介護度を数値に置き換えずに渡します。
確率の補正には CalibratedClassifierCV を使います。 分類器が出す確率が、実際の割合とずれていることがあるためです。この構成は確率をそのまま足し合わせるので、ずれがあると人数がまるごとずれます。 補正の方法には sigmoid(Platt の方法)と isotonic があり、isotonic は補正に使う件数が少ない(1,000件を大きく下回る)と過学習しやすいとされています。
03どうやって実装するのか
処理の起点を決める
毎月25日の夜に、翌月分を一度出します。 ケアマネジャーからのサービス提供票がそろい、介護ソフトに翌月の利用予定が入りきるのがこの時期です。提供票が届いていない利用者がいる状態で出すと、その人の分だけ人数が少なく出ます。 介護ソフトの予定の件数を前月と比べ、大きく減っていれば出さずに管理者へ知らせます。
毎週木曜の夜に、翌週分を出し直します。 月の途中で入院や退院、予定の追加・中止の連絡が入るためです。出し直した結果は、前の見込みから人数が変わった日だけを管理者に知らせます。毎週全日を知らせると、誰も読まなくなります。
当日の朝には動かしません。 当日の休みの連絡は電話で受けて、その場で送迎の順路を直すのが現場のやり方です。この構成が受け持つのは、前の月と前の週の段取りまでです。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 翌月の利用予定 | 利用者ID、予定日、事業所、方面、送迎の有無、車いすの利用 | 介護ソフト |
| 過去の予定と実績 | 過去2年分の予定日ごとの実績区分(来所/休み/入院中)と休みの理由 | 介護ソフト |
| 利用者の属性 | 要介護度、利用開始日、週の利用回数、利用終了の届けの有無 | 介護ソフト |
| 入院・退院の記録 | 入院日、退院日(予定を含む)、連絡を受けた日 | 相談員の記録の表 |
| 事業所の条件 | 利用定員、方面ごとの車両と乗れる人数・車いすの席の数、休業日 | 本部の管理表 |
質を決めるのは、2行目の実績区分と、4行目の入院・退院の記録です。 実績が「来所」と「それ以外」しか残っていないと、入院で来なかった日と、体調で休んだ日の区別がつきません。入院で来なかった日を「休み」として学ばせると、入院したことのある人が、退院した後もよく休む人として扱われます。 実績区分を3つに分けて残すことが、最初の準備作業です。
休みの理由は、自由に書かれていて構いません。 学ばせるときに使うのは区分だけで、理由は管理者が外れた日を振り返るときに読むためのものです。
データの取得方法を決める
介護ソフトから、予定と実績を表の形で書き出します。書き出しの項目と並びは、最初に一度決めて固定します。 介護ソフトの更新で並びが変わると、列を取り違えたまま動きます。読み込むときに列名を確かめ、決めた列がそろっていなければ止めます。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 翌月の予定 | 介護ソフトの利用予定の書き出し | 見込みを出す対象の組 |
| 過去の予定と実績 | 介護ソフトの実績の書き出し | 学ばせる材料と、利用者ごとの最近の休みの割合 |
| 入院・退院 | 相談員の記録の表 | 入院中の予定を外し、退院からの日数を作る |
| 車両と定員 | 本部の管理表 | 便数と定員の確認 |
入院中の人の予定は、モデルに渡しません。 入院中は来ないことが決まっているので、確からしさを0として扱います。退院の予定日が分かっている人は、その翌日以降の予定から渡します。 退院の予定日が分からない人は、予定に印を付けて管理者に回します。
AIへ渡す前に整形する
- 組を作る … 利用者ごと・予定日ごとに1行の表にします。予定の無い日は行を作りません
- 入院中と利用終了を外す … 入院日から退院日までの予定と、利用終了の届けが出た人の終了日以降の予定は、確からしさを0にして別にします
- 最近の休みの割合を作る … 予定日より前の8週間で、予定のうち休んだ割合。予定日より後の記録を混ぜない
- 続きの休みを作る … 予定日の直前に、何回続けて休んでいるか
- 退院からの日数を作る … 直近の退院から予定日までの日数。入院歴が無ければ空のまま残す
- 時期の項目を作る … 曜日、月、祝日の前後、年末年始
- 同じ方面の最近の休みを作る … 同じ事業所・同じ方面の、直近2週間の休みの割合。感染症のはやりを拾うため
3番目の「後の記録を混ぜない」を、いちばん気をつけてください。 学ばせるときに、予定日より後の休みまで含めて割合を出すと、その日に休んだこと自体が答えとして混ざり、 学ばせた期間ではよく当たるのに、翌月の見込みでは外れます。
5番目を0で埋めないのも同じ理由です。 入院歴の無い人を「退院0日」として渡すと、退院した直後の人と同じ扱いになります。空のまま渡せば、モデルが欠けた値の扱いを学びます。
AIに処理させる
させるのは、予定日ごとに「その人が来る確からしさ」を出すことだけです。 人数への足し合わせ、便数と職員数への換算、印付けは、決まった計算で行います。
| 見込むもの | 使うもの | 判断できないときの扱い |
|---|---|---|
| 予定日ごとの来る確からしさ | 最近の休みの割合、続きの休み、退院からの日数、要介護度、曜日、月、同じ方面の休み | 利用開始から8週未満の人は new_user |
| 日ごとの人数(真ん中と多め) | 確からしさの足し合わせと、その散らばり | 多めと真ん中の差が大きい日は wide |
| 方面ごとの人数 | 同上を方面で分けたもの | 同上 |
右端の列が、人が見る日を決めます。 new_user は、休みの傾向を学ばせる記録がまだ無い利用者です。こうした人が多い日は、モデルの見込みを信じる根拠が薄いので、管理者に回します。
日ごとの人数の散らばりは、確からしさを使った繰り返しの抽選で出します。 予定に入っている人それぞれについて、確からしさに従って「来る・来ない」を抽選し、合計を数えることを1万回繰り返します。その合計の真ん中と9割の位置が、真ん中と多めの人数です。
日ごとの人数を直接見込むモデルにしないのは、意図してのことです。 日ごとの人数だけを学ばせると、学ばせる材料は1事業所あたり年に300行ほどしかありません。利用者ごと・予定日ごとの組にすれば、同じ1年で数千行になり、誰が予定に入っているかという顔ぶれの違いを、そのまま見込みに映せます。 入院から戻った人が3人いる月と、新しい利用者が5人入った月の違いは、日ごとの平均からは出てきません。
ただし、抽選は1人ずつが別々に休むという前提に立っています。 感染症のはやりや大雪のように、多くの人が同じ日にそろって休む場面では、この前提が崩れます。そのため、同じ方面の最近の休みの割合を項目に入れ、多めの側が実際より狭くならないかを、保存した記録で毎月確かめます。
| させないこと | 理由 |
|---|---|
| 誰の利用を断るか・減らすかの判断 | ケアプランと本人・家族の意向で決まる |
| 人員基準を満たしているかの判断 | 当日の実際の利用者数と勤務で決まり、管理者が確かめる |
| 職員の勤務の割り当て | 勤務の希望と労働時間の管理は本部と管理者が行う |
| 定員を超える受け入れの判断 | 見込みで休みが多くても、予定人数で定員を守る |
| 体調や入院の推測 | 記録にある入院・退院だけを使う |
4行目がいちばん起きやすい失敗です。 見込みで「この日は5人休みそう」と出ると、空いた分に振替や追加の利用を入れたくなります。しかし、全員が来れば定員を超えます。 指定通所介護事業者は、災害その他のやむを得ない事情がある場合を除き、利用定員を超えて指定通所介護の提供を行ってはならないとされています。受け入れの判断は、見込みではなく予定人数で行います。
指示内容を固定する
この構成は生成AIを使わないので、プロンプトの代わりに、モデルの設定と換算の規則を書いておきます。
【モデル】
- HistGradientBoostingClassifier(loss="log_loss")
- categorical_features = ["office", "weekday", "area", "care_level"]
- 目的変数 = 来所なら 1、休みなら 0(入院中の予定は学ばせない)
- CalibratedClassifierCV(method="sigmoid") で確率を補正する
・補正に使う件数が 1,000 件を大きく下回る事業所では isotonic を使わない
- 学ばせ方と確かめ方は TimeSeriesSplit で、古い月で学ばせ新しい月で確かめる
・gap に 1 か月分を空け、翌月を見込む実際の使い方にそろえる
【足し合わせの規則】
- 日ごとの真ん中 = 1万回の抽選の合計の中央値
- 日ごとの多め = 1万回の抽選の合計の 90%の位置
- 入院中・利用終了の予定は 0 として数える
- 送迎の無い人(家族の送り迎え)は、人数には数え、便数には数えない
【換算の規則】
- 方面ごとの便数 = 多めの人数 ÷ 車両の乗れる人数(切り上げ)
・車いすの人数が車いすの席の数を超えるなら、車いす対応の車両を 1 便足す
- 介護職員の必要数(提供時間を通じて勤務する人数の目安)
・多めの人数が 15 人まで … 1
・15 人を超える … (多めの人数 − 15) ÷ 5 + 1
・これは人員基準の最低の目安で、実際の配置は事業所の介護の手間で上乗せする
- 生活相談員・看護職員・機能訓練指導員は、人数にかかわらず配置表に固定で載せる
【印を付ける条件】
- near_capacity:予定人数が利用定員の 9 割以上
- wide:多めの人数 − 真ん中の人数 が 4 人以上
- new_user:利用開始から 8 週未満の人が、その日の予定の 2 割以上
- discharge:退院の予定日が分からない入院中の人がいる
- shift:毎週の出し直しで、多めの人数が前回から 2 人以上変わった
- 印の無い日は、管理者の確認なしで本部へ渡す
介護職員の式は、人員基準の書き方をそのまま写しています。 介護職員は、提供時間帯に勤務している時間数の合計を提供時間数で割った数が、利用者が15人までなら1以上、15人を超えるなら15人を超える部分を5で割った数に1を加えた数以上となるよう求められています。この式は最低の線なので、配置表には「基準の目安」と「事業所の配置」の2列を分けて持ちます。
多めの人数で式を当てるのは、意図してのことです。 真ん中の人数で当てると、来る人が多かった日に基準を割り込みます。職員の数は余るほうへ寄せ、余った分は記録や機能訓練の準備に回します。
出力形式を固定する
事業所・日ごとに、次の形のJSONを作り、表にして本部の配置表へ渡します。
{
"office": "",
"date": "",
"capacity": 0,
"scheduled": 0,
"excluded": { "hospitalized": 0, "terminated": 0 },
"attendance": { "p50": 0, "p90": 0 },
"areas": [
{ "area": "", "p90": 0, "wheelchair_p90": 0, "trips": 0 }
],
"care_staff": { "standard_min": 0, "planned": null },
"flags": ["near_capacity | wide | new_user | discharge | shift"],
"model_version": "",
"manager_override": { "attendance": null, "trips": null, "reason": "" }
}
1つ目の理由は、scheduled と attendance を並べて見せられることです。 予定の人数と見込みの人数の差が、そのまま「休みそうな人数」です。管理者は、この差が利用者の最近の様子と合うかを見れば足ります。
2つ目は、standard_min と planned を分けて持てることです。 standard_min は人員基準の式で出した最低の目安で、planned は管理者と本部が決めた実際の配置です。1つの数字にすると、基準の線と事業所の判断が混ざり、 後から基準を割り込んでいないかを確かめられません。
3つ目は、manager_override で直した記録が残ることです。 管理者が人数や便数を直したら、ここに値と理由を書きます。配置表に渡るのは直した後の値で、モデルの値も残ります。 どちらが当たったかを、翌月に比べられます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 介護ソフト | 書き出したファイルの読み込み | 利用予定、実績、利用者の属性を取る |
| 相談員の記録の表 | 共有フォルダの表の読み込み | 入院日・退院日・利用終了 |
| 本部の管理表 | 共有フォルダの表の読み込み | 利用定員、車両、方面 |
| 本部の配置表 | 共有フォルダへの書き出し | 事業所 × 日の人数・便数・職員の目安 |
| 管理者への知らせ | 社内のチャットまたはメール | 印の付いた日と、出し直しで変わった日 |
介護ソフトへは書き込みません。 利用予定は請求につながる記録で、この構成が予定を消したり足したりすると、提供票と食い違います。 入院中の人の予定を外すのも、見込みの計算の中だけで行います。
勤務表へも書き込みません。 配置表に出すのは人数の案までで、誰を入れるかは本部と管理者が勤務表の上で決めます。
人が確認する
人が見るのは、印の付いた日だけです。 印の無い日は、見込みのまま本部の配置表に載ります。
dischargeを先に見る … 退院の予定日が分からない入院中の人。家族や病院の相談員に連絡がついていれば、退院日を記録に入れて出し直しますnear_capacityを見る … 予定人数が定員に近い日。振替や追加の利用をこの日に入れないよう、相談員と共有しますwideとnew_userを見る … 見込みの幅が広い日。新しい利用者の最近の様子を聞き、人数を直すか決めます- 直したら理由を書く …
manager_overrideに、どちらへ何人直したかと理由を残します
2番目を省かないでください。 見込みで休みが多い日ほど、振替の相談が入りやすくなります。定員を守るのは予定人数のほうで、見込みではありません。
本部は、3事業所の配置表を並べて職員の融通を決めます。 印の付いていない日も含めて、事業所間で人数の差が大きい日を拾い、応援を出す日と受ける日を勤務表に反映します。
例外に対処する
| 起きること | 対応 |
|---|---|
| 提供票が届いていない利用者がいる | 予定の件数が前月から大きく減れば、出さずに管理者へ知らせる |
| 書き出したファイルの列が足りない | 読み込みで止め、介護ソフトの書き出し設定を確かめる |
| 退院の予定日が分からない | 予定に discharge の印を付け、確からしさは0のまま管理者へ回す |
| 利用開始から日が浅い人が多い | new_user の印を付け、管理者が人数を確かめる |
| 感染症がはやり、同じ方面で休みが続く | 同じ方面の最近の休みの割合で拾うが、急な広がりは追いつかない。当日の判断に任せる |
| 臨時の休業日(災害・設備の故障) | 本部の管理表の休業日に入れ、その日の見込みを出さない |
| 新しい事業所を開く | 学ばせる記録が無い。半年は既存の事業所の割合を当て、管理者の確認を全日にする |
| 見込みと実際が3日続けて大きく外れる | 学ばせ直しの候補として本部へ知らせる |
上から3行目までが大半を占めます。 どれもモデルの問題ではなく、予定と入院の記録がそろっていない問題です。 記録の入れ方を直すほうが、モデルを工夫するより効きます。
記録を残す
- 見込みを出したときに使った予定と実績の書き出し(日付付き)
- 予定日ごとの確からしさと、日ごとの真ん中・多めの人数
- 方面ごとの便数の案と、介護職員の基準の目安
- 管理者が直した記録 … どの日を、どちらへ何人、なぜ直したか
- 当日の実際の来所人数と、見込みとの差
- 学ばせたモデルの版と、学ばせた期間・確かめた期間の外れ方
5つ目が、モデルの見直しの材料になります。 多めの人数を超えて来た日が、10日のうち1日を大きく超えるなら、多めの側が狭すぎます。 補正のやり方か、学ばせる期間を見直します。
4つ目は、管理者の知恵を残す場所でもあります。 「この方は月末に家族の通院の付き添いがある」といった直しの理由が続くなら、その事情を学ばせる項目に足す候補になります。
04実装レベルの3段階
最小構成では、多めの側が出ません。 足し合わせは真ん中の見込みしか出さず、便数と職員を決めるには足りません。確かめるための段階です。 半自動化で、人数を読む時間はほぼ無くなります。 ただし、便数と職員の換算、入院中の人の除外は手で残ります。本格構成で、管理者が見るのは印の付いた日だけになり、この段階が本記事の想定です。 差が大きいのは、方面ごとの便数を出す作業が、日ごと・方面ごとの手作業だからです。 段階を飛ばさないでください。 半自動化の見込みを2か月並べると、外れやすい事業所と時期が先に分かります。そこを直してから本格構成に進むほうが、印の付く日が減ります。
05工数削減シミュレーション
導入後 72件 × 5分 ÷ 60 = 6 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 通所介護の事業所を複数運営し、送迎の車両と職員の配置を事業所ごとに月単位で組んでいる法人。管理者や生活相談員が、翌月のサービス提供票を見ながら「この人はよく休む」「この曜日は少ない」と記憶で人数を読んでいる場合。当日の休みで送迎便や職員が余る日と、足りなくなる日が毎月出ている場合。介護ソフトから過去1年以上の利用予定と実績(来た・休んだ・入院した)を書き出せる場合。
- 事業所が1か所で利用者が十数名にとどまり、毎日ほぼ同じ顔ぶれが来る場合。利用予定と実績を紙で管理していて、過去の記録をデータとして取り出せない場合。開設から日が浅く、休みの傾向を学ばせる記録がたまっていない場合。なお、人員基準を満たしているかの判断、利用者ごとの利用の可否、個々の職員の勤務の割り当ては、この構成では代替できません。
07最小構成で試す方法
- 1つの事業所の、過去3か月分の予定と実績を介護ソフトから書き出す
- 表計算で、利用者ごとに「予定のうち来た割合」を出す(入院中の予定は除く)
- 先月の予定の表に、その割合を利用者ごとに貼り付ける
- 日ごとに割合を足し合わせ、先月の日ごとの見込み人数にする
- 先月の実際の来所人数と並べ、管理者が当時立てた人数とどちらが近かったかを比べる
この段階ではモデルを作りません。 「1人ずつの来た割合を足すだけで、記憶の読みと比べてどうか」を確かめます。ここで記憶の読みのほうがはっきり当たるなら、 何を見て読んでいたのかを管理者から聞き取り、その事情を項目に足すところから始めます。
| 出てきた内容 | 判断 |
|---|---|
| 割合の足し合わせが管理者の読みと同じくらい当たる | モデルと便数の換算に進む |
| 冬の月だけ大きく外れる | 時期の項目と同じ方面の休みの割合が要る。構成は有効 |
| 入院していた人の分で外れる | 入院・退院の記録の整備が先。モデルの問題ではない |
3行目が出ることは珍しくありません。 失敗ではなく、記録のどこが足りないかが分かったということです。 相談員の記録の表に入院日と退院日の列を足し、もう1か月分で同じことを試してください。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 学ばせた期間ではよく当たるのに、翌月は外れる | 予定日より後の記録が項目に混ざっている。 最近の休みの割合は予定日より前だけで作る |
| 入院したことのある人が、退院後もよく休む人として扱われる | 実績区分を3つに分け、入院中の予定を学ばせない |
| 確からしさを足すと、人数がまるごと多い(少ない) | 確率の補正を入れ、確かめる期間で足し合わせと実際を比べる |
| isotonic で補正したら、見込みがぎざぎざになる | 補正に使う件数が少ない。sigmoid にする |
| 多めの人数を超えて来る日が多い | 感染症のはやりなど、人の休みがそろって動く時期は抽選の前提が崩れる。多めの側を広げる印を時期で足す |
| 振替を休みの多い日に入れて定員を超えそうになる | 受け入れは予定人数で判断する。 見込みを受け入れの判断に使わない |
| 介護職員の目安を、そのまま配置にしてしまう | 目安は人員基準の最低の線。事業所の配置の列を別に持つ |
| 書き出しの列の並びが、介護ソフトの更新で変わる | 読み込みで列名を確かめ、そろっていなければ止める |
| 新しい利用者の見込みが外れる | new_user の印で管理者に回し、8週たってから記録に乗せる |
| 見込みを出し直すたびに、勤務表が書き換わる | 出し直しは知らせにとどめる。 勤務表は人が直す |
上の2行が、この構成の失敗のほとんどです。 どちらも、学ばせる材料の作り方の問題です。時間の順と、入院の区別を守れているかどうかで、運用に乗るかが決まります。
下から5行目と4行目も、同じくらい早く効いてきます。 見込みが出ると、それを受け入れや配置の決定にそのまま使いたくなります。この構成が出すのは段取りの材料で、基準を守る判断は人が行います。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 利用者の氏名とID、要介護度、利用の予定と実績、入院・退院の記録と休みの理由です。休みの理由には、体調や家族の事情が書かれていることがあります。
- 学ばせる表に氏名を入れない … 利用者IDだけで組み、氏名との対応は介護ソフトの側に置きます。配置表に出すのも人数だけで、誰が休みそうかの一覧は出しません
- 休みの理由の文章をモデルに渡さない … 使うのは実績区分だけです。理由の文章には病名や家族の事情が入りうるため、管理者が振り返るときにだけ介護ソフトで読みます
- 外部のサービスに送らない … この構成は生成AIも外部のAPIも使わず、法人の中のパソコンかサーバーで動かせます。 学ばせる表を持ち出す必要がありません
- 見込みを利用者への対応に使わない … 「来る確からしさが低い」と出た人に、利用を減らすよう勧めたり、扱いを変えたりしないでください。見込みは送迎と職員の段取りのためだけのものです
- 人員基準の判断を代替させない … 介護職員の目安は人員基準の式を写したものですが、実際に基準を満たしているかは、当日の利用者数と勤務の実績で管理者が確かめます
- 定員の判断を見込みに置かない … 受け入れは予定人数で判断し、利用定員を超えないようにします
誤りが起きた場合のリスクは、来る人が見込みより多く、送迎と職員が足りなくなることと、見込みを理由に利用者の扱いが変わることの2つです。 前者は多めの側で組むことで抑え、後者は見込みを個人ごとに見せないことで防ぎます。どちらも、出力を人数に限ることで設計の側で守れます。
10まず何から始めるか
1週目:実績の区分を3つに分ける
介護ソフトの実績で、休んだ日に「休み」と「入院中」を分けて残すよう、3事業所の相談員と申し合わせます。過去の分は、相談員の記録から入院の期間を拾い、表の上で付け直します。 直近1年分だけで足ります。
2週目:表計算で試す
1つの事業所の過去3か月分で、利用者ごとの来た割合を足し合わせ、先月の日ごとの見込みを作ります。管理者が当時立てた人数と、実際の来所人数を並べます。 外れた日の理由を管理者に聞き、記録で拾える事情かどうかを分けます。
3週目:換算の規則を決める
方面ごとの車両と乗れる人数、車いすの席の数を本部の管理表にまとめます。介護職員の目安の式と、事業所の実際の配置の上乗せの考え方を、管理者と本部で決めます。 ここが決まらないうちにモデルを作ると、人数は出るのに配置に使えない状態になります。
4週目:モデルを学ばせて並べる
Python で確からしさのモデルを学ばせ、古い月で学ばせて新しい月で確かめます。表計算の足し合わせと、どちらが実際に近いかを比べます。 この時点では配置表には出さず、見込みだけを管理者に見せます。
2か月目: 便数と介護職員の目安への換算と、印付けを足し、本部の配置表に出します。印の付いた日の数を毎週数えます。3か月目以降: 毎週の出し直しと、見込みと実際の差の記録を足し、1日分の見込みに何分かかっているかを実測します。多めの人数を超えて来た日の割合が10日に1日程度に収まった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
ヒストグラムに基づく勾配ブースティングの分類器であること。欠けた値(NaN)をそのまま扱え、分かれ目ごとに欠けた値を左右どちらへ送るかを改善の大きさから学ぶこと。categorical_features の既定が "from_dtype" で、カテゴリ型の列をカテゴリとして扱うこと。predict_proba でクラスごとの確率を返すこと | scikit-learn: HistGradientBoostingClassifier | 2026-10-13 |
| 交差検証を使って分類器の確率を補正すること。方法に sigmoid(Platt の方法)と isotonic があること。isotonic は補正に使う件数が少ない(1,000件を大きく下回る)と過学習しやすく推奨されないこと | scikit-learn: CalibratedClassifierCV | 2026-10-13 |
時間の順に並んだデータを、未来で学ばせて過去で確かめることにならないよう分けること。gap で学ばせる期間の末尾を確かめる期間との間で空けられること。後の学ばせる期間が前の期間を含むこと | scikit-learn: TimeSeriesSplit | 2026-10-13 |
| 指定通所介護の介護職員の員数が、提供時間帯の勤務時間数の合計を提供時間数で割った数で、利用者が15人までは1以上、15人を超える場合は15人を超える部分を5で割った数に1を加えた数以上であること(第93条)。利用定員を超えて提供してはならないこと(第102条) | e-Gov 法令API: 指定居宅サービス等の事業の人員、設備及び運営に関する基準(平成11年厚生省令第37号) | 2026-10-13 |
人員基準を満たしているかは、当日の利用者数と勤務の実績で管理者が確かめてください。 本記事は上記の公開資料で確認できた範囲だけを扱っており、自治体ごとの解釈や加算の要件は扱っていません。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1366)についてのご相談はこちらから。
