ਲਾਭ:
- ਡਾਟਾ ਲੀਕ ਹੋਣ ਦੀਆਂ ਕਿਸਮਾਂ (ਨਿਸ਼ਾਨਾ, ਸਮਾਂ, ਪ੍ਰੀਪ੍ਰੋਸੈਸਿੰਗ, ਸਮੂਹਬੱਧ ਕਤਾਰ) ਨੂੰ ਪਛਾਣਨ ਦੀ ਸਮਰੱਥਾ ਅਤੇ ਇੱਕ ਅਲਾਰਮ ਵਜੋਂ 'ਸੱਚੇ ਹੋਣ ਲਈ ਬਹੁਤ ਵਧੀਆ' ਸਕੋਰ ਦੀ ਪੁੱਛਗਿੱਛ
- ਟੈਸਟ ਸੈੱਟ, ਪਾਈਪਲਾਈਨ ਅਤੇ ਸਹੀ ਵਿਭਾਜਨ (ਕਾਲਮਿਕ/ਸਮੂਹਬੱਧ) ਦੇ ਛੇਤੀ ਵੱਖ ਹੋਣ ਦੇ ਨਾਲ ਲੀਕੇਜ ਨੂੰ ਰੋਕਣ ਦੀ ਸਮਰੱਥਾ
- ਸਥਿਰ ਬੀਜਾਂ, ਸੰਸਕਰਣ ਨਿਯੰਤਰਣ ਅਤੇ ਦਸਤੀ ਕਦਮਾਂ ਨੂੰ ਹਟਾਉਣ ਦੇ ਨਾਲ ਵਿਸ਼ਲੇਸ਼ਣ ਨੂੰ ਦੁਬਾਰਾ ਪੈਦਾ ਕਰਨ ਯੋਗ ਬਣਾਉਣ ਦੀ ਸਮਰੱਥਾ
ਇੱਥੇ ਦੋ ਗਲਤੀਆਂ ਹਨ ਜੋ ਡੇਟਾ ਵਿਗਿਆਨ ਵਿੱਚ ਸਭ ਤੋਂ ਵੱਧ ਮਿਹਨਤ ਬਰਬਾਦ ਕਰਦੀਆਂ ਹਨ, ਅਤੇ ਉਹ ਦੋਵੇਂ ਧੋਖੇਬਾਜ਼ ਹਨ ਕਿਉਂਕਿ ਉਹ ਤਬਾਹੀ ਵੱਲ ਲੈ ਜਾਂਦੇ ਹਨ ਜਦੋਂ ਸਭ ਕੁਝ "ਠੀਕ ਜਾਪਦਾ ਹੈ।" ਪਹਿਲਾ ਡਾਟਾ ਲੀਕੇਜ ਹੈ: ਮਾਡਲ ਟੈਸਟ ਸੈੱਟ 'ਤੇ ਵਧੀਆ ਕੰਮ ਕਰਦਾ ਹੈ ਪਰ ਉਤਪਾਦਨ ਵਿੱਚ ਕ੍ਰੈਸ਼ ਹੋ ਜਾਂਦਾ ਹੈ। ਦੂਸਰਾ irreproducibility ਹੈ: ਤੁਸੀਂ ਛੇ ਮਹੀਨਿਆਂ ਬਾਅਦ ਇੱਕ ਵਿਸ਼ਲੇਸ਼ਣ ਚਲਾਉਂਦੇ ਹੋ ਅਤੇ ਇੱਕ ਬਿਲਕੁਲ ਵੱਖਰਾ ਨਤੀਜਾ ਪ੍ਰਾਪਤ ਕਰਦੇ ਹੋ। ਇਹ ਇਕਾਈ ਡੂੰਘਾਈ ਵਿੱਚ ਇਹਨਾਂ ਦੋ ਨੁਕਸਾਂ ਨੂੰ ਜਾਣਨ ਅਤੇ ਉਹਨਾਂ ਤੋਂ ਬਚਣ ਲਈ ਸਮਰਪਿਤ ਹੈ। AI ਦੋਵਾਂ ਖਤਰਿਆਂ ਨੂੰ ਵਧਾ ਸਕਦਾ ਹੈ (ਛੇਤੀ ਪੈਦਾ ਕਰਦਾ ਹੈ, ਲੁਕਵੇਂ ਲੀਕ ਦਾ ਸੁਝਾਅ ਦਿੰਦਾ ਹੈ, ਤੁਹਾਡੇ ਲਈ ਹੱਥੀਂ ਕਦਮ ਚੁੱਕਣਾ ਆਸਾਨ ਬਣਾਉਂਦਾ ਹੈ) ਪਰ ਜੇਕਰ ਸਹੀ ਢੰਗ ਨਾਲ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਤਾਂ ਉਹਨਾਂ ਨੂੰ ਘਟਾ ਵੀ ਸਕਦਾ ਹੈ। ਅੰਤਰ ਅਨੁਸ਼ਾਸਨ ਵਿੱਚ ਹੈ।
ਡਾਟਾ ਲੀਕ: ਦਾਅਵੇਦਾਰ ਮਾਡਲ
ਡਾਟਾ ਲੀਕੇਜ ਉਦੋਂ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਮਾਡਲ ਸਿਖਲਾਈ ਦੌਰਾਨ ਜਾਣਕਾਰੀ ਦੇਖਦਾ ਹੈ ਜੋ ਅਸਲ ਪੂਰਵ-ਅਨੁਮਾਨ ਦੇ ਸਮੇਂ ਨਹੀਂ ਹੋਵੇਗੀ। ਮਾਡਲ ਇਸ ਜਾਣਕਾਰੀ ਦੇ ਨਾਲ "ਚੀਟਸ" ਕਰਦਾ ਹੈ, ਟੈਸਟ ਸੈੱਟ 'ਤੇ ਬਹੁਤ ਵਧੀਆ ਲੱਗ ਰਿਹਾ ਹੈ, ਪਰ ਉਸ ਜਾਣਕਾਰੀ ਤੋਂ ਬਿਨਾਂ ਉਤਪਾਦਨ ਵਿੱਚ ਕਰੈਸ਼ ਹੋ ਰਿਹਾ ਹੈ। ਲੀਕ ਦਾ ਲੱਛਣ ਲਗਭਗ ਹਮੇਸ਼ਾ ਇੱਕੋ ਜਿਹਾ ਹੁੰਦਾ ਹੈ: ਸੱਚ ਹੋਣ ਲਈ ਬਹੁਤ ਵਧੀਆ। ਜਦੋਂ ਤੁਸੀਂ 99% ਸ਼ੁੱਧਤਾ ਦੇਖਦੇ ਹੋ ਤਾਂ ਖੁਸ਼ੀ ਮਨਾਉਣ ਤੋਂ ਪਹਿਲਾਂ, ਤੁਹਾਨੂੰ ਲੀਕ ਦੀ ਭਾਲ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ।
ਲੀਕੇਜ ਦੀਆਂ ਮੁੱਖ ਕਿਸਮਾਂ ਹਨ:
1. ਟੀਚਾ ਲੀਕੇਜ: ਇੱਕ ਵਿਸ਼ੇਸ਼ਤਾ ਟੀਚੇ ਦਾ ਨਤੀਜਾ ਹੈ। "ਰੱਦ ਕੀਤਾ ਗਿਆ ਸੀ" ਪੂਰਵ ਅਨੁਮਾਨ ਵਿੱਚ, "ਰੱਦ ਕਰਨ ਦੀ ਮਿਤੀ" ਜਾਂ "ਰਿਫੰਡ ਦੀ ਰਕਮ" ਕਾਲਮ ਟੀਚੇ ਦਾ ਨਤੀਜਾ ਹਨ; ਇਹ ਉਦੋਂ ਹੀ ਭਰੇ ਜਾਣਗੇ ਜਦੋਂ ਨਤੀਜਾ ਸਪੱਸ਼ਟ ਹੋਵੇਗਾ।
2. ਸਮਾਂ ਲੀਕ: ਭਵਿੱਖ ਦੀ ਜਾਣਕਾਰੀ ਨੂੰ ਅਤੀਤ ਵਿੱਚ ਲਿਆਉਣਾ। "ਆਖਰੀ 30 ਦਿਨਾਂ ਦੀ ਔਸਤ" ਦੀ ਗਣਨਾ ਕਰਦੇ ਸਮੇਂ, ਪੂਰਵ ਅਨੁਮਾਨ ਦੇ ਦਿਨ ਤੋਂ ਬਾਅਦ ਦੇ ਦਿਨ ਸ਼ਾਮਲ ਕਰੋ, ਜਾਂ ਸਮਾਂ ਲੜੀ ਨੂੰ ਬੇਤਰਤੀਬੇ ਨਾਲ ਵੰਡੋ।
3. ਪ੍ਰੀ-ਪ੍ਰੋਸੈਸਿੰਗ ਲੀਕੇਜ: ਸਿਖਲਾਈ/ਟੈਸਟਿੰਗ ਭਾਗ ਤੋਂ ਪਹਿਲਾਂ ਸਾਰੇ ਡੇਟਾ ਤੋਂ ਸਕੇਲਿੰਗ, ਫਿਲਿੰਗ, ਕੋਡਿੰਗ ਵਰਗੀਆਂ ਤਬਦੀਲੀਆਂ ਸਿੱਖਣਾ। ਟੈਸਟ ਡੇਟਾ ਦੀ ਔਸਤ ਸਿਖਲਾਈ ਵਿੱਚ ਦਖਲ ਦਿੰਦੀ ਹੈ।
4. ਡੁਪਲੀਕੇਟ/ਸਮੂਹਬੱਧ ਕਤਾਰ ਲੀਕ: ਇੱਕੋ ਵਿਅਕਤੀ ਨਾਲ ਸਬੰਧਤ ਕਤਾਰਾਂ ਸਿਖਲਾਈ ਅਤੇ ਜਾਂਚ ਦੋਵਾਂ ਵਿੱਚ ਮੌਜੂਦ ਹੁੰਦੀਆਂ ਹਨ (ਵੱਖ-ਵੱਖ ਸੈੱਟਾਂ ਵਿੱਚ ਇੱਕੋ ਮਰੀਜ਼ ਦੀਆਂ ਦੋ ਮੁਲਾਕਾਤਾਂ)। ਮਾਡਲ ਵਿਅਕਤੀ ਨੂੰ ਯਾਦ ਕਰਦਾ ਹੈ.
ਲੀਕ ਦੀ ਕਿਸਮ
ਕਿਵੇਂ ਪੈਦਾ ਹੁੰਦਾ ਹੈ
ਕਿਵੇਂ ਰੋਕਿਆ ਜਾਵੇ
ਟੀਚਾ ਲੀਕ
ਕਾਲਮ ਜੋ ਕਿ ਟੀਚੇ ਦਾ ਨਤੀਜਾ ਹੈ
"ਕੀ ਮੇਰੇ ਕੋਲ ਇਹ ਭਵਿੱਖਬਾਣੀ ਦੇ ਸਮੇਂ ਹੈ" ਟੈਸਟ
ਸਮਾਂ ਲੀਕ
ਭਵਿੱਖ ਨੂੰ ਅਤੀਤ ਵਿੱਚ ਲਿਆਉਣਾ
ਕਾਲਕ੍ਰਮਿਕ ਵੰਡ, ਵਿੰਡੋ ਨਿਯੰਤਰਣ
ਪ੍ਰੀਪ੍ਰੋਸੈਸਿੰਗ ਲੀਕ
ਪ੍ਰੀ-ਵਿਭਾਜਿਤ ਰੂਪਾਂਤਰਨ
ਪਾਈਪਲਾਈਨ, ਸਿਰਫ ਸਿਖਲਾਈ ਤੋਂ ਫਿੱਟ
ਸਮੂਹਬੱਧ ਕਤਾਰ ਲੀਕ
ਦੋ ਸੈੱਟਾਂ ਵਿੱਚ ਇੱਕੋ ਇਕਾਈ
ਸਮੂਹ ਦੁਆਰਾ ਵੰਡਿਆ (GroupKFold)
ਲੀਕੇਜ ਨੂੰ ਰੋਕਣ ਲਈ ਸਿਰਫ ਅਨੁਸ਼ਾਸਨ
ਲੀਕ ਦੀਆਂ ਸਾਰੀਆਂ ਕਿਸਮਾਂ ਦਾ ਸਾਂਝਾ ਹੱਲ ਇੱਕ ਵਾਕ ਵਿੱਚ ਉਬਲਦਾ ਹੈ: ਅਸਲ ਭਵਿੱਖ ਦੀ ਨਕਲ ਕਰਨ ਲਈ ਜਿੰਨੀ ਜਲਦੀ ਹੋ ਸਕੇ ਟੈਸਟ ਸੈੱਟ ਨੂੰ ਅਲੱਗ ਕਰੋ, ਅਤੇ ਇਸਨੂੰ ਕੁਝ ਵੀ "ਸਿਖਾਉਣਾ" ਨਾ ਦਿਓ। ਅਭਿਆਸ ਵਿੱਚ, ਇਸਦਾ ਮਤਲਬ ਹੈ: ਪਹਿਲਾਂ ਵੰਡੋ, ਫਿਰ ਸਿਰਫ ਸਿਖਲਾਈ ਤੋਂ ਸਾਰੇ ਪਰਿਵਰਤਨ ਸਿੱਖੋ ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਇੱਕ ਪਾਈਪਲਾਈਨ ਵਿੱਚ ਲਾਗੂ ਕਰੋ (ਇੱਕ ਢਾਂਚਾ ਜੋ ਇੱਕ ਲੜੀ ਵਿੱਚ ਸਾਰੇ ਕਦਮਾਂ ਨੂੰ ਇਕੱਠਾ ਕਰਦਾ ਹੈ)। ਹਰੇਕ ਵਿਸ਼ੇਸ਼ਤਾ ਲਈ, ਸਵਾਲ ਪੁੱਛੋ "ਕੀ ਭਵਿੱਖਬਾਣੀ ਦੇ ਸਮੇਂ ਮੇਰੇ ਕੋਲ ਇਹ ਜਾਣਕਾਰੀ ਹੈ?" ਜੇ ਸਮਾਂ ਹੈ, ਤਾਂ ਇਸਨੂੰ ਕਾਲਕ੍ਰਮ ਅਨੁਸਾਰ ਵੰਡੋ; ਜੇਕਰ ਇੱਕੋ ਇਕਾਈ ਦੁਹਰਾਈ ਜਾਂਦੀ ਹੈ, ਤਾਂ ਸਮੂਹ ਦੁਆਰਾ ਵੰਡੋ।
ਸਾਵਧਾਨ: ਲੀਕ ਦਾ ਸਭ ਤੋਂ ਖ਼ਤਰਨਾਕ ਪਹਿਲੂ ਇਹ ਹੈ ਕਿ ਇਹ ਆਪਣੇ ਆਪ ਨੂੰ ਸਫ਼ਲਤਾ ਵਜੋਂ ਪੇਸ਼ ਕਰਦਾ ਹੈ। ਇੱਕ ਮਾੜਾ ਮਾਡਲ ਸਪੱਸ਼ਟ ਤੌਰ 'ਤੇ ਮਾੜੇ ਨਤੀਜੇ ਪੈਦਾ ਕਰੇਗਾ ਅਤੇ ਦੇਖਿਆ ਜਾਵੇਗਾ; ਇੱਕ ਲੀਕ ਹੋਇਆ ਮਾਡਲ ਬਹੁਤ ਵਧੀਆ ਕੰਮ ਕਰਦਾ ਹੈ, ਹਰ ਕਿਸੇ ਨੂੰ ਖੁਸ਼ ਕਰਦਾ ਹੈ, ਅਤੇ ਉਤਪਾਦਨ ਵਿੱਚ ਰੱਖਿਆ ਜਾਂਦਾ ਹੈ — ਇੱਥੋਂ ਹੀ ਢਹਿਣਾ ਸ਼ੁਰੂ ਹੁੰਦਾ ਹੈ। ਇਸ ਲਈ "ਬਹੁਤ ਵਧੀਆ" ਨਤੀਜਾ ਅਲਾਰਮ ਦਾ ਕਾਰਨ ਹੈ, ਜਸ਼ਨ ਨਹੀਂ।
ਪ੍ਰਜਨਨਯੋਗਤਾ: ਇੱਕੋ ਨਤੀਜਾ ਦੋ ਵਾਰ ਪ੍ਰਾਪਤ ਕਰਨਾ
ਪ੍ਰਜਨਨਯੋਗਤਾ ਉਹੀ ਨਤੀਜਾ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਯੋਗਤਾ ਹੈ ਜਦੋਂ ਤੁਸੀਂ ਕਿਸੇ ਹੋਰ ਸਮੇਂ, ਕਿਸੇ ਹੋਰ ਮਸ਼ੀਨ 'ਤੇ ਦੁਬਾਰਾ ਵਿਸ਼ਲੇਸ਼ਣ ਚਲਾਉਂਦੇ ਹੋ। ਇਸ ਤੋਂ ਬਿਨਾਂ, ਤੁਹਾਡਾ ਵਿਸ਼ਲੇਸ਼ਣ ਇਤਫਾਕਨ ਹੈ, ਵਿਗਿਆਨਕ ਨਹੀਂ। ਮੁੱਖ ਕਾਰਨ ਅਤੇ ਹੱਲ ਜੋ ਪ੍ਰਜਨਨ ਸਮਰੱਥਾ ਨੂੰ ਕਮਜ਼ੋਰ ਕਰਦੇ ਹਨ:
ਦਸਤੀ ਕਦਮ: ਐਕਸਲ ਵਿੱਚ ਇੱਕ ਸੈੱਲ ਨੂੰ ਹੱਥੀਂ ਬਦਲਣਾ, ਇੱਕ ਚਾਰਟ ਨੂੰ ਹੱਥੀਂ ਸੰਪਾਦਿਤ ਕਰਨਾ। ਹੱਲ: ਕੋਡ ਵਿੱਚ ਹਰੇਕ ਕਦਮ ਰੱਖੋ।
ਬੇਤਰਤੀਬ ਬੇਤਰਤੀਬਤਾ: ਮਾਡਲ ਸਿਖਲਾਈ, ਨਮੂਨਾ, ਵੰਡਣ ਵਿੱਚ ਬੇਤਰਤੀਬਤਾ ਸ਼ਾਮਲ ਹੁੰਦੀ ਹੈ। ਹੱਲ: ਬੇਤਰਤੀਬ ਬੀਜ (ਰੈਂਡਮ ਜਨਰੇਟਰ ਦਾ ਸ਼ੁਰੂਆਤੀ ਮੁੱਲ) ਫਿਕਸ ਕਰੋ (ਰੈਂਡਮ_ਸਟੇਟ=42)।
ਸੰਸਕਰਣ ਸ਼ਿਫਟ: ਜਦੋਂ ਲਾਇਬ੍ਰੇਰੀ ਸੰਸਕਰਣ ਬਦਲਦਾ ਹੈ ਤਾਂ ਨਤੀਜਾ ਬਦਲ ਸਕਦਾ ਹੈ। ਹੱਲ: ਨਿਰਭਰਤਾ ਨੂੰ ਠੀਕ ਕਰੋ (requirements.txt, ਵਾਤਾਵਰਣ ਫਾਈਲ)।
ਕੋਈ ਰਿਕਾਰਡ ਨਹੀਂ ਰੱਖਣਾ: ਇਹ ਸਪੱਸ਼ਟ ਨਹੀਂ ਹੈ ਕਿ ਕਿਹੜਾ ਡੇਟਾ, ਕਿਹੜਾ ਕੋਡ, ਕਿਹੜਾ ਪੈਰਾਮੀਟਰ ਵਰਤਿਆ ਗਿਆ ਸੀ। ਹੱਲ: ਸੰਸਕਰਣ ਨਿਯੰਤਰਣ (Git — ਸਿਸਟਮ ਜੋ ਕੋਡ ਦੇ ਸਾਰੇ ਸੰਸਕਰਣਾਂ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰਦਾ ਹੈ) ਅਤੇ ਡੇਟਾ ਸੰਸਕਰਣ।
"ਇਹ ਸਿਰਫ ਮੇਰੀ ਮਸ਼ੀਨ 'ਤੇ ਕੰਮ ਕਰਦਾ ਹੈ": ਹੱਲ: ਵਾਤਾਵਰਣ ਦਾ ਦਸਤਾਵੇਜ਼ ਬਣਾਓ, ਜੇ ਸੰਭਵ ਹੋਵੇ ਤਾਂ ਕੰਟੇਨਰਾਂ (ਡੌਕਰ) ਦੀ ਵਰਤੋਂ ਕਰੋ।
ਤਿੰਨ ਛੋਟੇ ਕੇਸ
ਕੇਸ 1 - ਟੀਚਾ ਲੀਕ। ਇੱਕ ਸਿਹਤ ਵਿਸ਼ਲੇਸ਼ਣ ਵਿੱਚ "ਮਰੀਜ਼ ਨੂੰ ਦੁਬਾਰਾ ਦਾਖਲ ਕੀਤਾ ਜਾਵੇਗਾ ਜਾਂ ਨਹੀਂ।" ਇਹ ਕਾਲਮ ਮਰੀਜ਼ ਦੇ ਡਿਸਚਾਰਜ ਹੋਣ ਤੋਂ ਬਾਅਦ ਹੀ ਭਰਿਆ ਜਾਂਦਾ ਸੀ। ਮਾਡਲ ਨੇ 96% ਦਿੱਤਾ, ਉਤਪਾਦਨ ਵਿੱਚ 61%. 8 ਹਫਤਿਆਂ ਦਾ ਪ੍ਰੋਜੈਕਟ ਕੂੜਾ ਸੀ। ਪਾਠ: ਹਰੇਕ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਪੁੱਛੋ "ਕੀ ਇਹ ਭਵਿੱਖਬਾਣੀ ਦੇ ਸਮੇਂ ਮੌਜੂਦ ਹੈ?"
ਕੇਸ 2 - ਪ੍ਰੀ-ਪ੍ਰੋਸੈਸਿੰਗ ਲੀਕ। ਇੱਕ ਟੀਮ ਨੇ ਸਾਰੇ ਡੇਟਾ ਨੂੰ ਸਕੇਲ ਕੀਤਾ ਅਤੇ ਫਿਰ ਇਸਨੂੰ ਵੰਡਿਆ। ਟੈਸਟ ਡੇਟਾ ਦਾ ਮਤਲਬ ਸਕੇਲਿੰਗ ਵਿੱਚ ਸ਼ਾਮਲ ਸੀ। ਸੀਵੀ ਸਕੋਰ 89%, ਅਸਲ ਉਤਪਾਦਨ 76%। ਨਕਲੀ ਸਫਲਤਾ ਉਦੋਂ ਗਾਇਬ ਹੋ ਗਈ ਜਦੋਂ ਮੈਂ ਪਾਈਪਲਾਈਨ ਵਿੱਚ ਚਲਾ ਗਿਆ ਅਤੇ ਸਿਖਲਾਈ ਤੋਂ ਹੀ ਤਬਦੀਲੀਆਂ ਬਾਰੇ ਸਿੱਖਿਆ। ਪਾਠ: ਪਹਿਲਾਂ ਵੰਡੋ, ਬਾਅਦ ਵਿੱਚ ਬਦਲੋ।
ਕੇਸ 3 - ਦੁਬਾਰਾ ਪੈਦਾ ਕਰਨ ਵਿੱਚ ਅਸਫਲਤਾ। ਇੱਕ ਵਿਸ਼ਲੇਸ਼ਕ ਉਸ ਚਾਰਟ ਨੂੰ ਅੱਪਡੇਟ ਕਰਨਾ ਚਾਹੁੰਦਾ ਸੀ ਜੋ ਉਸਨੇ ਤਿੰਨ ਮਹੀਨਿਆਂ ਬਾਅਦ ਪ੍ਰਬੰਧਨ ਨੂੰ ਪੇਸ਼ ਕੀਤਾ ਸੀ ਪਰ ਉਸਨੂੰ ਯਾਦ ਨਹੀਂ ਸੀ ਕਿ ਉਸਨੇ ਇਸਨੂੰ ਕਿਵੇਂ ਤਿਆਰ ਕੀਤਾ; Excel ਵਿੱਚ ਬਹੁਤ ਸਾਰੇ ਕਦਮ ਹੱਥੀਂ ਕੀਤੇ ਗਏ ਸਨ। ਨਤੀਜਾ ਨਹੀਂ ਨਿਕਲਿਆ ਅਤੇ ਭਰੋਸਾ ਟੁੱਟ ਗਿਆ। ਪਾਠ: ਕੋਈ ਦਸਤੀ ਕਦਮ ਨਹੀਂ, ਸਭ ਕੁਝ ਕੋਡ ਅਤੇ ਗਿੱਟ ਵਿੱਚ ਹੈ।
ਚਾਰ ਕਾਪੀ ਕਰਨ ਯੋਗ ਟੈਂਪਲੇਟ
1) ਲੀਕ ਨਿਰੀਖਣ:
ਤੁਹਾਡੀ ਭੂਮਿਕਾ: ਲੀਕ ਇੰਸਪੈਕਟਰ। ਟੀਚਾ: "ਚਰਨ" (0/1), ਪੂਰਵ ਅਨੁਮਾਨ ਸੰਦਰਭ ਮਿਤੀ: record_date. ਮੈਂ ਤੁਹਾਨੂੰ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦੀ ਇਹ ਸੂਚੀ ਦੇਵਾਂਗਾ. ਹਰੇਕ ਵਿਸ਼ੇਸ਼ਤਾ ਲਈ: (ਏ) ਕੀ ਇਹ ਟੀਚੇ ਦਾ ਨਤੀਜਾ ਹੈ, (ਬੀ) ਕੀ ਇਹ ਮੇਰੇ ਲਈ ਭਵਿੱਖਬਾਣੀ ਦੇ ਸਮੇਂ ਉਪਲਬਧ ਹੈ, (ਸੀ) ਕੀ ਸਮਾਂ ਵਿੰਡੋ ਵਿੱਚ ਭਵਿੱਖ ਸ਼ਾਮਲ ਹੈ? ਇਸਨੂੰ "ਅਸੁਰੱਖਿਅਤ/ਸ਼ੱਕੀ/ਲੀਕ" ਵਜੋਂ ਚਿੰਨ੍ਹਿਤ ਕਰੋ ਅਤੇ ਇੱਕ ਕਾਰਨ ਲਿਖੋ। ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ: [ਸੂਚੀ]
2) ਲੀਕ-ਮੁਕਤ ਪਾਈਪਲਾਈਨ:
ਸਕਲਰਨ ਪਾਈਪਲਾਈਨ ਸੈਟ ਅਪ ਕਰੋ: ਪਹਿਲਾਂ ਸਪਲਿਟ ਟ੍ਰੇਨ/ਟੈਸਟ (ਸਟੈਟੀਫਾਈਡ, ਸੀਡ=42), ਫਿਰ ਸਾਰੇ ਪ੍ਰੀਪ੍ਰੋਸੈਸਿੰਗ (ਇੰਪਿਊਟ, ਸਕੇਲ, ਏਨਕੋਡ) ਨੂੰ ਸਿਰਫ ਟ੍ਰੇਨਿੰਗ ਤੋਂ ਪਾਈਪਲਾਈਨ ਵਿੱਚ ਫਿੱਟ ਕਰੋ। ਦੱਸੋ ਕਿ ਕੋਡ ਲੀਕ-ਮੁਕਤ ਕਿਉਂ ਹੈ, ਕਿਹੜਾ ਕਦਮ ਕਿੱਥੇ ਸਿੱਖਿਆ ਗਿਆ ਸੀ।
3) ਰੀਪ੍ਰੋਡਸੀਬਿਲਟੀ ਚੈਕਲਿਸਟ ਕੋਡ:
ਮੈਂ ਆਪਣੇ ਵਿਸ਼ਲੇਸ਼ਣ ਨੂੰ ਦੁਬਾਰਾ ਤਿਆਰ ਕਰਨਾ ਚਾਹੁੰਦਾ ਹਾਂ। ਕੋਡ/ਸੰਰਚਨਾ ਦਾ ਸੁਝਾਅ ਦਿਓ ਜੋ ਜੋੜਦਾ ਹੈ: (1) ਸਾਰੀਆਂ ਬੇਤਰਤੀਬਤਾ ਲਈ ਸਖ਼ਤ ਬੀਜ, (2) ਪ੍ਰਿੰਟਿੰਗ ਲਾਇਬ੍ਰੇਰੀ ਵਰਜਨ ਵਰਤੇ ਗਏ, (3) ਡੇਟਾ ਅਤੇ ਆਉਟਪੁੱਟ ਲਈ ਮਿਤੀ/ਵਰਜਨ ਟੈਗ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਮੈਨੂੰ ਇੱਕ ਚੈਕਲਿਸਟ ਵੀ ਦਿਓ ਕਿ ਕੋਈ ਦਸਤੀ ਕਦਮ ਨਹੀਂ ਹਨ।
4) ਸਮੂਹਬੱਧ ਭਾਗ (ਇੱਕੋ ਯੂਨਿਟ ਲੀਕ):
ਡੇਟਾ ਵਿੱਚ ਇੱਕੋ ਗਾਹਕ_ਆਈਡੀ ਕਈ ਕਤਾਰਾਂ ਵਿੱਚ ਮੌਜੂਦ ਹੈ। ਇੱਕ ਸਪਲਿਟ ਕਰੋ (GroupKFold orGroupShuffleSplit, group = customer_id) ਜੋ ਇੱਕੋ ਗਾਹਕ ਨੂੰ ਸਿਖਲਾਈ ਅਤੇ ਟੈਸਟਿੰਗ ਦੋਵਾਂ ਵਿੱਚ ਹੋਣ ਤੋਂ ਰੋਕਦਾ ਹੈ। ਇਹ ਪੁਸ਼ਟੀ ਕਰਨ ਲਈ ਕੋਡ ਸ਼ਾਮਲ ਕਰੋ ਕਿ ਵੰਡਣ ਤੋਂ ਬਾਅਦ ਕੋਈ ਵੀ ਗਾਹਕ ਦੋਵਾਂ ਸੈੱਟਾਂ ਵਿੱਚ ਨਹੀਂ ਹੈ।
ਕਮਜ਼ੋਰ ਪ੍ਰੋਂਪਟ / ਮਜ਼ਬੂਤ ਪ੍ਰੋਂਪਟ
ਕਮਜ਼ੋਰ ਪ੍ਰੋਂਪਟ:
ਮੇਰੇ ਮਾਡਲ ਨੇ 98% ਸ਼ੁੱਧਤਾ ਵਾਪਸ ਕੀਤੀ, ਕੀ ਇਹ ਵਧੀਆ ਨਹੀਂ ਹੈ? ਕੋਡ ਨੂੰ ਅਨੁਕੂਲ ਬਣਾਓ।
98% ਦਾ ਜਸ਼ਨ ਲੀਕ ਨੂੰ ਛੁਪਾਉਂਦਾ ਹੈ। ਅਨੁਕੂਲ ਬਣਾਉਣ ਤੋਂ ਪਹਿਲਾਂ, ਇਹ ਸਵਾਲ ਕੀਤਾ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ ਕਿ ਕੀ ਇਹ ਸਕੋਰ ਅਸਲੀ ਹੈ ਜਾਂ ਨਹੀਂ.
ਸ਼ਕਤੀਸ਼ਾਲੀ ਪ੍ਰਾਉਟ:
ਤੁਹਾਡੀ ਭੂਮਿਕਾ: ਲੀਕ ਇੰਸਪੈਕਟਰ। ਮੇਰਾ ਮਾਡਲ ਟੈਸਟ ਸੈੱਟ 'ਤੇ 98% ਸ਼ੁੱਧਤਾ ਦਿੰਦਾ ਹੈ, ਜੋ ਮੇਰੇ ਲਈ "ਸੱਚ ਹੋਣ ਲਈ ਬਹੁਤ ਵਧੀਆ" ਲੱਗਦਾ ਹੈ। ਜਾਂਚ ਕਰੋ: (1) ਕੀ ਟੀਚੇ ਦੇ ਨਤੀਜੇ ਵਜੋਂ ਕੋਈ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਹਨ, (2) ਵੰਡਣ ਤੋਂ ਪਹਿਲਾਂ ਕੀਤੇ ਗਏ ਪਰਿਵਰਤਨ ਹਨ, (3) ਦੋ ਸੈੱਟਾਂ ਵਿੱਚ ਇੱਕੋ ਇਕਾਈ ਹਨ, (4) ਕੀ ਕੋਈ ਵੀ ਸਮਾਂ ਲੀਕ ਹੈ। ਕਿਸੇ ਵੀ ਸ਼ੱਕੀ ਬਿੰਦੂ ਦੀ ਸੂਚੀ ਬਣਾਓ; ਲੀਕ ਨੂੰ ਲੱਭਣ 'ਤੇ ਧਿਆਨ ਦਿਓ, ਸਕੋਰ ਫਿਕਸ ਕਰਨ 'ਤੇ ਨਹੀਂ।
ਇੱਥੇ, ਇੱਕ ਉੱਚ ਸਕੋਰ ਨੂੰ ਸਵਾਲ ਕੀਤੇ ਜਾਣ ਦੇ ਸੰਕੇਤ ਵਜੋਂ ਮੰਨਿਆ ਜਾਂਦਾ ਹੈ, ਨਾ ਕਿ ਮਨਾਏ ਜਾਣ ਲਈ।
ਆਮ ਗਲਤੀਆਂ
- "ਬਹੁਤ ਵਧੀਆ" ਨਤੀਜੇ ਦਾ ਜਸ਼ਨ ਮਨਾਉਣਾ। ਇੱਕ ਬਹੁਤ ਵਧੀਆ-ਤੋਂ-ਸੱਚਾ ਸਕੋਰ ਇੱਕ ਲੀਕ ਚੇਤਾਵਨੀ ਹੈ, ਨਾ ਕਿ ਇੱਕ ਪ੍ਰਾਪਤੀ।
- ਵੰਡ ਤੋਂ ਪਹਿਲਾਂ ਸਾਰੇ ਡੇਟਾ ਤੋਂ ਪਰਿਵਰਤਨ ਸਿੱਖਣਾ। ਸਭ ਤੋਂ ਆਮ ਲੀਕ; ਪਹਿਲਾਂ ਪਾਈਪਲਾਈਨ ਨਾਲ ਵੰਡੋ।
- ਸਮੇਂ ਦੀ ਲੜੀ ਨੂੰ ਬੇਤਰਤੀਬ ਢੰਗ ਨਾਲ ਵੰਡਣਾ। ਮਾਡਲ ਭਵਿੱਖ ਨੂੰ ਦੇਖਦਾ ਹੈ; ਕਾਲਕ੍ਰਮਿਕ ਵੰਡ ਜ਼ਰੂਰੀ ਹੈ।
- ਇੱਕੋ ਯੂਨਿਟ ਨੂੰ ਦੋ ਸੈੱਟਾਂ ਵਿੱਚ ਛੱਡਣਾ। ਮਾਡਲ ਵਿਅਕਤੀ ਨੂੰ ਯਾਦ ਕਰਦਾ ਹੈ; ਸਮੂਹ ਦੁਆਰਾ ਵੰਡੋ.
- ਹੱਥੀਂ ਕਦਮ ਨਹੀਂ ਚੁੱਕਣਾ ਅਤੇ ਕੋਡ ਵਿੱਚ ਲਿਖਣਾ ਨਹੀਂ। ਵਿਸ਼ਲੇਸ਼ਣ ਅਪ੍ਰਤੱਖ ਹੋ ਜਾਂਦਾ ਹੈ; ਸਭ ਕੁਝ ਕੋਡ ਅਤੇ ਗਿੱਟ ਵਿੱਚ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ.
ਸੁਝਾਅ: ਆਪਣੇ ਪ੍ਰੋਜੈਕਟ ਦੀ ਸ਼ੁਰੂਆਤ ਵਿੱਚ ਇੱਕ ਦੋ-ਵਾਕ "ਸਨਮਾਨ ਦੀ ਵਚਨਬੱਧਤਾ" ਲਿਖੋ: "ਮੈਂ ਇਸਨੂੰ ਉਤਪਾਦਨ ਵਿੱਚ ਦੇਖਣ ਤੋਂ ਪਹਿਲਾਂ ਕਿਸੇ ਵੀ ਤਰੀਕੇ ਨਾਲ ਟੈਸਟ ਸੈੱਟ ਨੂੰ ਛੂਹਿਆ ਨਹੀਂ ਹੈ। ਹਰ ਕਦਮ ਕੋਡ ਵਿੱਚ ਹੈ ਅਤੇ ਬੀਜ ਸਥਿਰ ਹੈ।" ਜੇਕਰ ਤੁਸੀਂ ਇਨ੍ਹਾਂ ਦੋ ਵਾਕਾਂ 'ਤੇ ਇਮਾਨਦਾਰੀ ਨਾਲ ਦਸਤਖਤ ਨਹੀਂ ਕਰ ਸਕਦੇ, ਤਾਂ ਤੁਹਾਡਾ ਨਤੀਜਾ ਅਜੇ ਭਰੋਸੇਯੋਗ ਨਹੀਂ ਹੈ।
ਸੰਖੇਪ ਵਿੱਚ
ਡੇਟਾ ਲੀਕੇਜ ਅਤੇ ਗੈਰ-ਪ੍ਰਜਨਨਯੋਗਤਾ ਡੇਟਾ ਵਿਗਿਆਨ ਵਿੱਚ ਦੋ ਸਭ ਤੋਂ ਮਹਿੰਗੀਆਂ ਚੁੱਪ ਗਲਤੀਆਂ ਹਨ। ਲੀਕੇਜ ਭਵਿੱਖ ਦੇ ਮਾਡਲ ਦਾ ਦ੍ਰਿਸ਼ਟੀਕੋਣ ਹੈ ਅਤੇ ਆਪਣੇ ਆਪ ਨੂੰ ਝੂਠੀ ਸਫਲਤਾ ਵਜੋਂ ਪੇਸ਼ ਕਰਦਾ ਹੈ; ਹੱਲ ਇਹ ਹੈ ਕਿ ਟੈਸਟ ਸੈੱਟ ਨੂੰ ਜਲਦੀ ਵੰਡੋ, ਸਿਰਫ ਸਿਖਲਾਈ (ਪਾਈਪਲਾਈਨ) ਤੋਂ ਪਰਿਵਰਤਨ ਸਿੱਖੋ, ਹਰੇਕ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਸਵਾਲ ਪੁੱਛੋ "ਕੀ ਇਹ ਭਵਿੱਖਬਾਣੀ ਦੇ ਸਮੇਂ ਮੇਰੇ ਕੋਲ ਹੈ" ਅਤੇ ਸਹੀ ਵੰਡਣਾ (ਕਾਲਕ੍ਰਮਿਕ/ਸਮੂਹਬੱਧ) ਕਰੋ। ਪ੍ਰਜਨਨਯੋਗਤਾ ਦੋ ਵਾਰ ਇੱਕੋ ਨਤੀਜਾ ਪ੍ਰਾਪਤ ਕਰਨ ਦੇ ਯੋਗ ਹੈ; ਉਸਦਾ ਹੱਲ ਹੱਥੀਂ ਕਦਮਾਂ ਨੂੰ ਹਟਾਉਣਾ, ਬੀਜ ਨੂੰ ਪਿੰਨ ਕਰਨਾ, ਸੰਸਕਰਣਾਂ ਨੂੰ ਫ੍ਰੀਜ਼ ਕਰਨਾ, ਅਤੇ ਹਰ ਚੀਜ਼ ਨੂੰ ਗਿੱਟ ਵਿੱਚ ਰੱਖਣਾ ਹੈ। AI ਇਹਨਾਂ ਜੋਖਮਾਂ ਨੂੰ ਵਧਾ ਸਕਦਾ ਹੈ ਜਾਂ ਘਟਾ ਸਕਦਾ ਹੈ; ਇਹ ਤੁਹਾਡਾ ਅਨੁਸ਼ਾਸਨ ਹੈ ਜੋ ਨਿਰਧਾਰਤ ਕਰਦਾ ਹੈ।
ਐਪਲੀਕੇਸ਼ਨ ਦਾ ਕੰਮ
ਤੁਹਾਡੇ ਦੁਆਰਾ ਬਣਾਏ ਗਏ ਮਾਡਲ ਦੀ ਵਿਸ਼ੇਸ਼ਤਾ ਸੂਚੀ ਲਓ (ਜਾਂ ਇੱਕ ਕਾਲਪਨਿਕ ਇੱਕ) ਅਤੇ ਹਰੇਕ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਸਵਾਲ ਪੁੱਛੋ "ਕੀ ਮੇਰੇ ਕੋਲ ਭਵਿੱਖਬਾਣੀ ਦੇ ਸਮੇਂ ਇਹ ਜਾਣਕਾਰੀ ਹੈ?" ਲਿਖਤੀ ਰੂਪ ਵਿੱਚ; ਘੱਟੋ-ਘੱਟ ਇੱਕ ਲੀਕ ਉਮੀਦਵਾਰ ਲੱਭੋ. ਫਿਰ ਆਪਣੇ ਵਿਸ਼ਲੇਸ਼ਣ ਨੂੰ ਪੁਨਰ-ਉਤਪਾਦਨ ਯੋਗ ਬਣਾਉਣ ਲਈ ਇੱਕ ਚੈਕਲਿਸਟ ਭਰੋ: ਕੀ ਬੀਜ ਨਿਸ਼ਚਿਤ ਹੈ, ਕੀ ਹੱਥੀਂ ਕਦਮ ਹਨ, ਕੀ ਸੰਸਕਰਣ ਰਜਿਸਟਰ ਹਨ, ਕੀ ਉਹ ਗਿੱਟ ਵਿੱਚ ਹਨ। ਕਮੀਆਂ ਨੂੰ ਠੀਕ ਕਰੋ।
ਚੈੱਕਲਿਸਟ
- [ ] ਕੀ ਮੈਂ ਲੀਕ ਚੇਤਾਵਨੀ ਦੇ ਤੌਰ 'ਤੇ "ਸੱਚ ਹੋਣ ਲਈ ਬਹੁਤ ਵਧੀਆ" ਸਕੋਰ ਦੀ ਪੁੱਛਗਿੱਛ ਕੀਤੀ ਸੀ?
- [ ] ਕੀ ਮੈਂ ਸਾਰੇ ਪਰਿਵਰਤਨ ਵੰਡ ਤੋਂ ਬਾਅਦ ਸਿੱਖੇ, ਸਿਰਫ਼ ਸਿਖਲਾਈ ਤੋਂ?
- ਕੀ ਮੈਂ ਸਮਾਂ/ਸਮੂਹ ਬਣਤਰ (ਕਾਲਕ੍ਰਮ/ਗਰੁੱਪਕੇਫੋਲਡ) ਅਨੁਸਾਰ ਵੰਡਿਆ ਹੈ?
- [ ] ਕੀ ਮੈਂ ਸਥਿਰ ਬੀਜ ਨਾਲ ਸਾਰੀਆਂ ਬੇਤਰਤੀਬਤਾ ਨੂੰ ਦੁਹਰਾਉਣ ਯੋਗ ਬਣਾਇਆ ਹੈ?
- [ ] ਕੀ ਮੈਂ ਦਸਤੀ ਕਦਮਾਂ ਨੂੰ ਹਟਾ ਦਿੱਤਾ ਹੈ ਅਤੇ ਹਰ ਚੀਜ਼ ਨੂੰ ਕੋਡ ਅਤੇ ਸੰਸਕਰਣ ਨਿਯੰਤਰਣ ਵਿੱਚ ਰੱਖਿਆ ਹੈ?