管理物件の入居者の契約・更新の時期・問い合わせ・入居年数から翌月以降の退去を見込み、募集の準備とオーナーへの連絡の順番を出す
管理物件の契約・更新の時期・入居年数・問い合わせ・入金の記録から、今後90日以内に解約の通知が届きそうな部屋を毎月見込みます。物件とオーナーごとに束ね、募集の準備とオーナーへの連絡の順番を営業の担当に出します。
- 連携・自動化
- Python
- 対象業界
- その他/不動産/宿泊
- 対象部門
- 営業
- 対象業務
- 比較検討/集計・分析
- 主な課題
- データ分析に時間がかかる/営業フォローが追いつかない/属人化している
- AIで行う処理
- 予測
- 主な効果
- 判断支援/工数削減/機会損失防止
- 導入難易度
- ★★★★☆
- 実装レベル
- 本格構成
- 費用感
- 個別開発(大)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 月初に、賃貸管理システムから更新が3か月以内に来る部屋の一覧を書き出す
- 受付の表から、前月に問い合わせや修理の依頼があった部屋を拾い、一覧に足す
- 1室ずつ、契約(入居日、賃料、更新料、法人か個人か)を賃貸管理システムで開く
- 問い合わせと修理の依頼の中身を読み、家賃の入金の遅れがないかを見る
- 「出そう」「分からない」「出なさそう」を担当の表に書く
- 「出そう」の部屋について、募集の図面と写真がそろっているかを確かめる
- 「出そう」の部屋が多いオーナーから、電話か訪問で状況を伝える
- 自動毎月1日の朝、Python のプログラムが動き、賃貸管理システムと受付の表の書き出しを読み込む
- 自動部屋ごとに特徴(更新までの残りの日数、入居年数、法人か個人か、問い合わせと修理の回数、入金の遅れなど)を作る
- 自動普通借家の全室について、今後90日以内に解約の通知が届く確率を見込む
- 自動部屋ごとに、その部屋で起きている事実のうち、過去に解約の割合を押し上げていたものを理由として並べる
- 自動確率を物件・オーナー・月ごとに足し上げ、空室の見込みの数を出す
- 自動オーナーごとの空室の見込みの数と、募集の図面・写真がそろっているかで、連絡と準備の順番を付ける
- 人営業の担当が上位の部屋とオーナーを確かめ、募集の準備に入るか、オーナーへ連絡するかを決める
- 人オーナーに連絡し、賃料の見直しや設備の更新を相談する
- 自動翌月以降、実際に通知が届いた部屋と見込みを突き合わせ、外れ方を記録する
各工程の詳しい説明を読む
- 月初に、賃貸管理システムから更新が3か月以内に来る部屋の一覧を書き出す
- 受付の表から、前月に問い合わせや修理の依頼があった部屋を拾い、一覧に足す
- 1室ずつ、契約(入居日、賃料、更新料、法人か個人か)を賃貸管理システムで開く
- 問い合わせと修理の依頼の中身を読み、家賃の入金の遅れがないかを見る
- 「出そう」「分からない」「出なさそう」を担当の表に書く
- 「出そう」の部屋について、募集の図面と写真がそろっているかを確かめる
- 「出そう」の部屋が多いオーナーから、電話か訪問で状況を伝える
(a)通知が来てから動くことになる。 5番の見込みが「分からない」のまま翌月に回る部屋が多く、実際には解約の通知が届いてから6番を始めることになります。 図面の作り直し、写真の撮り直し、賃料の相談を1か月で終えるのは難しく、退去から次の入居までが空きます。
(b)見込みが担当ごとに違う。 同じ「入居4年目で更新が近い単身の部屋」でも、担当によって「出そう」と「分からない」が分かれます。どちらが当たったかを振り返る記録もありません。
(c)オーナーへの連絡が部屋の順になる。 担当の表は部屋ごとに並んでいて、オーナーごとに何室が出そうかは、表を並べ替えて数え直さないと分かりません。 3室の退去が重なるオーナーへの相談が、1室のオーナーと同じ順番になります。
(d)一覧に入らない部屋がある。 更新が3か月以内でもなく、問い合わせも無い部屋は、そもそも確かめていません。社宅の借上げの部屋は、更新の時期と関係なく転勤で動きます。
- 【自動】 毎月1日の朝、Python のプログラムが動き、賃貸管理システムと受付の表の書き出しを読み込む
- 【自動】 部屋ごとに特徴(更新までの残りの日数、入居年数、法人か個人か、問い合わせと修理の回数、入金の遅れなど)を作る
- 【自動】 普通借家の全室について、今後90日以内に解約の通知が届く確率を見込む
- 【自動】 部屋ごとに、その部屋で起きている事実のうち、過去に解約の割合を押し上げていたものを理由として並べる
- 【自動】 確率を物件・オーナー・月ごとに足し上げ、空室の見込みの数を出す
- 【自動】 オーナーごとの空室の見込みの数と、募集の図面・写真がそろっているかで、連絡と準備の順番を付ける
- 【人】 営業の担当が上位の部屋とオーナーを確かめ、募集の準備に入るか、オーナーへ連絡するかを決める
- 【人】 オーナーに連絡し、賃料の見直しや設備の更新を相談する
- 【自動】 翌月以降、実際に通知が届いた部屋と見込みを突き合わせ、外れ方を記録する
7番目が、この設計の分かれ目です。 確率が高くても、担当が「この入居者は先月更新の意思を伝えてきた」と知っていれば、準備に入りません。担当の知っていることを上書きできる形にしておき、上書きした理由を残します。
入居者への働きかけが、どの番号にも無いことを確かめてください。 確率が高い部屋の入居者に連絡すると、入居者から見れば、まだ何も言っていないのに退去を促されたことになります。 この構成の出力は、管理会社とオーナーの段取りにだけ使います。
02今回想定するシステム構成
賃貸管理システム(契約・更新・入出金・解約) 受付の表(問い合わせ・修理の依頼) 募集の図面・写真の共有フォルダ │ 毎月1日の朝、CSVで書き出し ▼【トリガー】定時実行 Python(pandas) ├──▶ 普通借家の部屋だけを残す ├──▶ 部屋ごとの特徴を作る ▼ scikit-learn(HistGradientBoostingClassifier+確率の較正) │ 今後90日以内に解約の通知が届く確率 ▼ Python ── 理由の事実を並べる/物件・オーナー・月ごとに足し上げる ▼ 営業部の共有の表(部屋の一覧/オーナーの一覧) ▼ 【担当が上位を確かめ、準備とオーナーへの連絡を決める】
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 実行環境 | Python(pandas・scikit-learn の HistGradientBoostingClassifier) | R、BigQuery ML |
| データの取得元 | 賃貸管理システムと受付の表のCSVの書き出し | 賃貸管理システムのAPI |
| 一覧の出力先 | 営業部の共有の表(部屋の一覧とオーナーの一覧) | 賃貸管理システムの帳票の機能 |
| 定時実行 | OSのタスクスケジューラ | クラウドのジョブ実行サービス |
生成AIは使いません。 この構成で行うのは、記録から確率を見込むことと、その確率を物件やオーナーごとに足し上げることです。どちらも同じ入力から同じ答えが出るので、オーナーに「なぜこの部屋が出そうか」を同じ説明で伝えられます。
賃貸管理システムには書き込みません。 確率を契約の画面に書き戻すと、入居者からの問い合わせを受ける担当の目に入り、対応の仕方が変わります。 一覧は営業部の共有の表にだけ置きます。
モデルに HistGradientBoostingClassifier を選ぶのは、欠けた値をそのまま扱えるからです。 公式の説明では、学ばせるときに分かれ目ごとに欠けた値を左右どちらへ送るかを学ぶとされています。法人契約の部屋には「勤務先の転勤の時期」があり、個人契約の部屋には無い、 というように、部屋によって埋まる列が違うのが賃貸の記録です。欠けた値を0や平均で埋めると、「無い」ことの意味が消えます。
カテゴリの列もそのまま入ります。 categorical_features の既定は "from_dtype" で、表の列をカテゴリの型にしておけば、物件の種別、間取り、契約の種別(個人/法人)を数値に直さずに渡せます。
03どうやって実装するのか
処理の起点を決める
毎月1日の朝6時に動かします。 前月末の入金の締めと解約の受付の入力が終わった後で、担当が朝の打合せで一覧を見られる時刻にします。
見込む先は「今後90日以内に解約の通知が届くか」です。 通知から退去までが30日前後なので、90日先まで見込めば、退去の2か月から3か月前に準備を始められます。 30日以内の見込みだけでは、通知が来てから動くのと変わりません。
1月と2月は、月の半ばにもう一度動かします。 3月に向けた転勤や進学の動きは、この時期に一気に出ます。月初の1回だけでは、2月の半ばに出た社宅の借上げの動きが3月の一覧まで載りません。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 契約の記録 | 部屋、入居日、契約の種別(普通/定期)、個人か法人か、賃料、管理費、更新料、次の更新日 | 賃貸管理システム |
| 解約の記録 | 解約の通知を受けた日、退去日、解約の理由の区分 | 賃貸管理システム |
| 入金の記録 | 月ごとの入金日と、期日からの遅れの日数 | 賃貸管理システム |
| 問い合わせ・修理の依頼 | 受付の日、区分(設備・騒音・近隣・契約・その他)、対応が終わった日 | 受付の表 |
| 物件の記録 | 物件の種別、築年数、間取り、最寄り駅からの分数、周辺の同じ間取りの募集の数 | 賃貸管理システムと自社の募集の記録 |
| 法人契約の記録 | 契約の相手の法人、過去にその法人の社員が退去した月 | 賃貸管理システム |
| 募集の準備の状態 | 部屋ごとの図面・写真の有無と撮影日 | 共有フォルダ |
質を決めるのは、解約の「通知を受けた日」です。 退去日しか残っていないと、「その月の時点で、90日以内に通知が届いたか」という答えが作れません。賃貸管理システムの書き出しに、通知の受付日の列があるかを最初に確かめます。 無い場合は、退去日から30日を引いて代え、その旨を記録に残します。
法人契約の記録は、過去の退去の月を持たせます。 社宅の借上げは、更新の時期ではなくその法人の人事異動の時期で動きます。同じ法人の社員が毎年3月と9月に退去しているなら、それが部屋の特徴になります。
入居者の年齢・国籍・家族の構成は、入力に入れません。 当たりが良くなる列があったとしても、その列で「出そう」と見た部屋を、オーナーへの説明に使えません。 理由として説明できない列は、最初から外します。
データの取得方法を決める
賃貸管理システムの帳票の機能で、前月末の時点の記録をCSVで書き出します。賃貸管理システムによって、書き出しの方法と列の名前が違います。 APIを持つものは定時に取りに行き、持たないものは帳票を定時に書き出す設定にして、営業部だけが読める共有フォルダに置かれたファイルを読みます。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| いま入居中の普通借家の全室 | 契約の記録 | 今月の見込み |
| 過去3年分の、月末時点の契約と記録 | 書き出しの保管分 | 「その月の時点の記録」と「90日以内に通知が来たか」の組を作る |
| 過去3年分の解約 | 解約の記録 | 答え(通知が来たか) |
| 受付の表の過去3年分 | 受付の表 | 問い合わせと修理の回数・間隔 |
過去の分は「その月の時点で見えていた記録」で作ります。 いまの契約の記録から過去の月を組み立てると、後から入力された解約の理由や、退去の後に締めた修理の記録まで含まれます。 その月の時点では見えていなかった値で学ばせると、本番で外れます。月末の書き出しを毎月保管し、それを過去の分に使います。
AIへ渡す前に整形する
- 対象を絞る … 定期借家の契約、解約の通知がすでに届いている部屋、入居して3か月以内の部屋を外します
- 更新までの残りを作る … 次の更新日までの日数を作ります。更新日を過ぎて自動で更新された部屋は、次の更新日から数え直します
- 入居年数を作る … 入居日からの月数を作ります。更新の回数も別の列にします
- 受付の記録を数える … 直近6か月の問い合わせと修理の依頼を区分ごとに数え、対応が終わるまでの日数の最大も作ります
- 入金の遅れを作る … 直近6か月で期日から遅れた回数と、遅れの日数の最大を作ります
- 法人の動きの月を作る … 法人契約の部屋について、その法人の社員が過去に退去した月の分布から、見込む先の90日に、その法人の動きの月が入るかを作ります
- 季節の列を作る … 見込む先の90日に3月が入るか、9月が入るかを作ります
- 学ばせる組を作る … 過去の各月末の時点の特徴と、「その後90日以内に解約の通知が届いたか」を組にします
2番目で、更新日そのものではなく残りの日数を使います。 更新の案内を送る時期は会社ごとに決まっていて、案内を受け取った後の数週間に通知が集まることがあります。残りの日数にすると、この山を学べます。
8番目で、検証の分け方を時期で切ります。 古い2年で学ばせ、直近の1年で確かめます。同じ部屋の別の月の組が両側に入ると、その部屋を覚えているだけで当たります。
AIに処理させる
させるのは、部屋ごとに今後90日以内に解約の通知が届く確率を見込むことだけです。 理由の並べ方、足し上げ、順番の付け方は、決めた計算で行います。
| 見込むもの・出すもの | 使うもの | 判断できないときの扱い |
|---|---|---|
| 90日以内に通知が届く確率 | 前処理で作った特徴 | 同じ物件の種別・契約の種別で学ばせた組が少なければ low_history |
| 理由の事実 | その部屋で起きている事実のうち、過去の解約の割合が全体より高かったもの | 該当する事実が1つも無ければ no_signal |
| 物件・オーナーごとの空室の見込みの数 | 確率の足し上げ | 足し上げの元の部屋に low_history が多ければ印を引き継ぐ |
| 連絡の順番 | 空室の見込みの数と、募集の準備の状態 | 準備の状態が分からなければ prep_unknown |
右端の列の no_signal が、担当に読ませたい部屋です。 確率は高いのに、理由の事実が1つも並ばない部屋は、モデルが特徴の組み合わせから見込んでいて、人が読める理由が無いということです。担当が自分の知っていることと照らします。
| させないこと | 理由 |
|---|---|
| 入居者への連絡や意向の確認 | 入居者から見れば、退去を促されたことになる |
| 賃料の改定や設備の更新の決定 | オーナーが決めること。この構成は相談の材料を出すまで |
| 解約の理由の推測 | 記録から言えるのは「どの事実があったか」まで |
| 入金の遅れを理由にした入居者への対応 | 督促は別の業務で、別の基準で行う |
| 確率の賃貸管理システムへの書き戻し | 入居者の対応をする担当に先入観を持たせる |
4行目を明記しておきます。 入金の遅れは見込みには効きますが、「出そうだから督促を強める」「出そうだから更新の条件を変える」という使い方は、この構成の目的から外れます。
指示内容を固定する
この構成は生成AIを使わないので、プロンプトの代わりに、モデルの設定と、理由・足し上げ・順番の規則を書いておきます。
【モデル】
- HistGradientBoostingClassifier(
learning_rate=0.05, max_iter=500, early_stopping="auto",
categorical_features="from_dtype", class_weight="balanced")
- CalibratedClassifierCV(estimator=上記, method="isotonic", cv=5)
(学ばせる組が1,000件を大きく超えるため isotonic)
- 目的変数:月末から90日以内に解約の通知を受け付けたか(1/0)
- 学ばせる組:古い2年の各月末 / 確かめる組:直近1年の各月末
【理由の事実の表(学ばせる組から毎回作り直す)】
- 事実ごとに「その事実があった部屋の90日以内の通知の割合」と
「全体の割合」を出し、比が1.5以上のものだけを理由の候補にする
- 事実の例:更新まで残り120日以内/入居4年以上/法人契約で動きの月が入る/
直近6か月で設備の修理の依頼が2回以上/対応に30日以上かかった依頼がある/
直近6か月で入金の遅れが2回以上/周辺の同じ間取りの募集が前年より多い
- 1つの部屋につき、比の大きい順に3つまで
【足し上げ】
- 空室の見込みの数(物件・オーナー・月)= Σ 部屋の確率
- 月の割り振り:通知の見込みの月 + 30日 を退去の見込みの月とする
【連絡の順番】
- オーナーごとに、空室の見込みの数の大きい順
- 同じ数なら、募集の図面・写真が無い部屋を含むオーナーを先に
- 担当が「準備に入らない」とした部屋は足し上げから外す
【印を付ける条件】
- low_history:その物件の種別・契約の種別で学ばせた組が 50 未満
- no_signal:確率が上位1割に入るのに、理由の事実が1つも無い
- prep_unknown:図面・写真の有無が分からない
- jump:前月から確率が 0.2 以上上がった
理由の事実を毎回作り直すのは、割合が年によって変わるからです。 周辺に新築の物件が増えた年は、「入居4年以上」の部屋の動きが大きくなります。学ばせ直すたびに、理由の表も同じ学ばせる組から作り直します。
「退去の見込みの月=通知の見込みの月+30日」は、目安です。 標準契約書では30日前の申入れとされていますが、自社の契約で予告の期間が違う物件は、その日数で置き換えます。 契約の記録に予告の日数の列を持たせておくと、ここが物件ごとに直せます。
出力形式を固定する
部屋ごとに、次の形のJSONを作り、部屋の一覧とオーナーの一覧の2つの表にします。
{
"unit_id": "",
"property_id": "",
"owner_id": "",
"as_of": "",
"probability_90d": 0.0,
"expected_moveout_month": "",
"reasons": [
{ "fact": "", "value": "", "lift": 0.0 }
],
"listing_ready": { "floor_plan": true, "photos_taken": "" },
"flags": ["low_history | no_signal | prep_unknown | jump"],
"model_version": "",
"staff_override": { "prepare": null, "reason": "" }
}
reasons には比の大きい順に3つまでの要素を並べます。value にはその部屋の実際の値(「更新まで残り68日」「直近6か月で設備の修理の依頼3回」)、lift にはその事実があった部屋の通知の割合が全体の何倍だったかを入れます。
1つ目の理由は、reasons をそのままオーナーへの説明に使えることです。 「この部屋は更新まで残り68日で、過去に同じ条件の部屋は全体の2.1倍の割合で通知が来ています」と言えれば、オーナーは賃料の見直しの相談を聞く気になります。
2つ目は、listing_ready で準備の遅れが見えることです。 確率が高いのに図面や写真が古い部屋が、最初に手を付ける部屋です。 撮影日を持たせておけば、内装を変えた後に撮り直していない部屋も拾えます。
3つ目は、staff_override で担当の知っていることが残ることです。 担当が「準備に入らない」とした部屋が翌月に通知を出したかを数えれば、担当の判断とモデルのどちらが当たっていたかが分かります。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 賃貸管理システム | 帳票の定時の書き出し、またはAPI | 契約・解約・入金の記録 |
| 受付の表 | 表の読み取り | 問い合わせと修理の依頼 |
| 募集の図面・写真の共有フォルダ | ファイルの一覧の読み取り | 部屋ごとの図面と写真の有無・撮影日 |
| 営業部の共有の表 | 表の書き出しと読み取り | 部屋の一覧、オーナーの一覧、担当の上書き |
オーナーへの連絡は、担当が行います。 オーナーの一覧には空室の見込みの数と理由の事実が並びますが、電話や訪問の文面は担当が自分で考えます。 オーナーには確率の数字ではなく、「この3か月で2室ほど動きそうです」という幅で伝えます。
人が確認する
人が見るのは、オーナーの一覧の上位と、印の付いた部屋だけです。 3,000戸すべてを開く設計にはしません。
- オーナーの一覧を上から見る … 空室の見込みの数が大きいオーナーから、連絡するかを決めます
no_signalとjumpを確かめる … 理由の無い高い確率と、急に上がった部屋です。担当の知っていることと照らします- 上書きする … 更新の意思を聞いている、入居者と話した記録があるなどで、準備に入らないと決めた部屋は
staff_overrideに理由を書きます - 準備に入る … 図面と写真の準備、賃料の相談の材料の用意を始めます
目標は、720件をならして1件1.5分です。 上位のオーナーの部屋は理由を読んで連絡を考えるので数分、それ以外は流し見るので数十秒です。印の多い月は、書き出しの漏れか、学期ならぬ転勤の時期で記録が大きく動いています。
例外に対処する
| 起きること | 対応 |
|---|---|
| 書き出しが届いていない | その月の一覧を出さず、何が欠けたかを担当へ知らせる |
| 解約の通知の受付日の列が空 | 退去日から30日を引いて代え、代えた件数を記録する |
| 定期借家か普通借家かが分からない | 見込みの対象から外し、契約の確認を依頼する |
| 物件を新しく管理し始めた | 過去の記録が無いので low_history。前の管理会社の記録は使わない |
| 法人の社宅の借上げの契約が一括で解約される | 部屋ごとの見込みでは捉えられない。法人の担当から聞いた情報を担当が上書きする |
| 建て替えや売却で全室の退去が決まった物件 | 見込みの対象から外す |
| 確かめる期間の外れ方が前の版より悪い | 新しい版を使わず、前の版で見込みを出す |
5行目は、モデルでは防げません。 法人がまとめて社宅を引き払うときは、個々の部屋の記録には何の兆しも出ません。法人の担当との付き合いで聞いた情報を、上書きで入れる経路を必ず残してください。
記録を残す
- 実行ごとに、読み込んだ書き出しのファイル名と日時、行数、対象から外した部屋の数と理由
- 学ばせたモデルの版(学ばせた期間、特徴の一覧、較正の方法)と、理由の事実の表
- 確かめる期間での外れ方(較正の曲線と、上位100室に実際に通知が来た部屋が何室入ったか)
- 部屋ごとの出力のJSONと、オーナーごとの足し上げ
- 担当の上書きの記録(準備に入らないとした部屋と理由)
- 実際に通知が届いた日と、見込みとの差
較正の曲線は、空室の見込みの数を信じてよいかを決めます。 確率を足し上げて数にする以上、確率0.3と出た部屋の3割前後に実際に通知が来ていないと、オーナーへの「2室ほど」が外れます。 曲線がずれ始めたら学ばせ直します。
04実装レベルの3段階
最小構成では、毎月の運用には使えません。 100室の表を手で作るので、3,000戸には届きません。 半自動化で、1件5分が2.5分程度になります。 第4章の①と②が消え、一覧を読めば理由の値が分かります。残るのは、部屋の一覧をオーナーごとに数え直す作業です。 本格構成でオーナーの一覧が付き、1.5分になります。この段階が本記事の想定です。
05工数削減シミュレーション
導入後 720件 × 1.5分 ÷ 60 = 18 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 管理戸数が数千戸あり、営業の担当1人が数百戸とその物件のオーナーを受け持っている賃貸管理会社。解約の通知が届いてから募集の準備を始めていて、退去から次の入居までの空室の期間が長くなりがちな場合。契約・更新・問い合わせ・修理の依頼・家賃の入金が賃貸管理システムに記録として残っている場合。過去3年以上の解約の記録がある場合。
- 管理戸数が数百戸で、担当が入居者の様子を把握できている会社。定期借家の契約が大半で、退去の時期が契約で決まっている物件。解約の記録が紙で、日付をデータとして取り出せない場合。なお、入居者に退去の意向を尋ねること、賃料の改定や設備の更新を決めることは、この構成では代替できません。
07最小構成で試す方法
- 前の年に解約の通知が届いた部屋から50室、届かなかった部屋から50室を選ぶ(後者には、更新が近かった部屋を半分入れる)
- 100室について、通知の3か月前の月末の時点の記録を、賃貸管理システムと受付の表から1つの表にまとめる
- 第7章の前処理の2番から6番(更新までの残り、入居年数、受付の回数、入金の遅れ、法人の動きの月)を表計算で作る
- Python で HistGradientBoostingClassifier を学ばせ、上位に来た部屋と理由の事実を並べる
- 担当6名で、上位の部屋が自分の見込みと合うかを読む
100室は必ずやってください。 書き出しを定時にする前に、「3か月前の記録に、通知の兆しが出ていたか」を確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 通知が届いた部屋の多くが上位に来る | 書き出しの定時化と全室への拡大に進む |
| 上位に来るのは更新が近い部屋ばかり | 更新の時期しか効いていない。受付と法人の記録の作り方を見直す |
| 3か月前の記録が残っていない | 書き出しの保管が先。 モデルの問題ではない |
2行目が出ても、失敗ではありません。 更新の時期だけで見込めるなら、いまの「更新が3か月以内」の一覧の作り方で足りているということです。その場合は、更新が近くない部屋の中で通知が来た部屋を集め、何が共通していたかを先に調べます。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 当たりすぎるモデルができる | 後から入った記録を含んだ値で学ばせている。 月末の書き出しを保管して使う |
| 退去日から学ばせて、見込みが1か月遅れる | 通知の受付日を答えにする |
| 同じ部屋が学ばせる側と確かめる側の両方に入る | 時期で切る |
| 欠けた値を0で埋めて意味が消える | HistGradientBoostingClassifier に欠けたまま渡す |
| 定期借家の部屋が混ざる | 契約の種別で最初に外す |
| 確率の足し上げが実際の数とずれる | 較正の曲線で確かめる。ずれたら学ばせ直す |
| 法人の一括の解約を見落とす | 担当の上書きの経路を残す |
| 入居者に連絡してしまう | 一覧の使い道を営業部の段取りに限ると決めて書く |
| 年齢・国籍などの列を入れたくなる | 入れない。 オーナーに説明できない理由は使わない |
| 受付の区分がばらばら | 区分を決めて付け始めるのが先 |
上の3行が、この構成の失敗のほとんどです。 どれも確かめる期間では良い成績が出て、本番の最初の数か月で外れます。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 入居者の契約・賃料・入金の状況・問い合わせと修理の依頼の記録、法人契約の相手の名前と過去の退去の月です。入居者の暮らしと支払いにかかわる記録です。
- 入居者に働きかけない … 確率は管理会社とオーナーの段取りにだけ使います。入居者への連絡、更新の条件の変更、督促の強弱に使わないことを、社内の決まりとして書きます
- 確率を賃貸管理システムに書き戻さない … 入居者の対応をする担当が見ると、問い合わせへの答え方が変わります
- オーナーに渡すのは見込みの数と事実まで … 個々の入居者の入金の遅れや問い合わせの中身を、オーナーにそのまま渡さないようにします。オーナーに伝えてよい範囲は、管理の契約で決まっている報告の範囲で考えます
- 説明できない列を入れない … 年齢・国籍・家族の構成は入れません。オーナーに理由として伝えられない列で見込んだ部屋は、オーナーへの説明にも準備の判断にも使えません
- 書き出しの置き場所を営業部に限る … 3,000戸分の入金の遅れと問い合わせがまとまった表です。共有フォルダの権限を営業部だけにし、持ち出しの記録を残します
誤りが起きた場合のリスクは、出ない部屋の準備に手間をかけることと、出る部屋の準備が遅れることの2つです。 どちらも空室の期間か担当の時間で済み、入居者には及びません。入居者に及ぶ経路を作らないことが、この構成のいちばんの安全策です。
10まず何から始めるか
1週目:書き出しの列を確かめる
賃貸管理システムの書き出しに、解約の通知の受付日、次の更新日、契約の種別(普通/定期)、個人か法人かの列があるかを確かめます。無ければ、帳票の設定で足せるかをシステムの提供元に聞きます。
2週目:保管と受付の区分を始める
月末の書き出しを今月末の分から保管し始めます。 あわせて、受付の表に区分(設備・騒音・近隣・契約・その他)を付け始めます。
3週目:100室で試す
前の年の100室で、3か月前の記録を表にまとめ、HistGradientBoostingClassifier を学ばせます。担当6名で、上位の部屋と理由が自分の見込みと合うかを読みます。
4週目:一覧の使い道を決める
入居者に働きかけないこと、オーナーに伝える範囲、担当の上書きの書き方を営業部で決め、文書にします。
2か月目: 書き出しの定時化と全室の部屋の一覧を作り、半自動化の段階で動かします。3か月目以降: オーナーの一覧と準備の状態の確認を足し、1件5分が何分になったかを実測します。較正の曲線で確率の目盛りが合い、オーナーへの「何室ほど」が外れなくなった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
HistGradientBoostingClassifier が欠けた値をそのまま扱い、分かれ目ごとに欠けた値を送る側を学ぶこと。categorical_features の既定が "from_dtype" で、カテゴリの型の列をカテゴリとして扱うこと。class_weight="balanced" が使えること。early_stopping の既定が "auto" で、件数が10,000を超えると有効になること。predict_proba が確率を返すこと | scikit-learn: HistGradientBoostingClassifier | 2026-10-09 |
| CalibratedClassifierCV の方法に sigmoid と isotonic があり、isotonic は目安として1,000件程度を超えるデータで sigmoid と同等以上になるとされること。較正の曲線で確率の目盛りを確かめられること | scikit-learn: Probability calibration | 2026-10-09 |
| 賃貸住宅標準契約書が、賃貸借をめぐる紛争の防止などを目的とした契約書のひな形で、使用が法令で義務付けられたものではないこと | 国土交通省: 『賃貸住宅標準契約書』について | 2026-10-09 |
| 標準契約書(家賃債務保証業者型)の第11条で、借主は少なくとも30日前に解約の申入れを行うことで契約を解約できるとされ、30日分の賃料を支払えば申入れの日から30日を経過する日までの間いつでも解約できるとされていること。第2条で、貸主と借主は協議の上で契約を更新できるとされていること | 国土交通省: 賃貸住宅標準契約書(Word形式) | 2026-10-09 |
解約の予告の期間は、自社の契約書の定めを確かめてください。 本記事は標準契約書で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1251)についてのご相談はこちらから。
