# Rasa split data nlu fails. Which algorithm is implemented?

**URL:** <https://forum.rasa.com/t/rasa-split-data-nlu-fails-which-algorithm-is-implemented/29259>\
**Category:** Rasa Open Source\
**Created:** [May 25, 2020, 4:23am UTC](https://forum.rasa.com/t/rasa-split-data-nlu-fails-which-algorithm-is-implemented/29259 "2020-05-25T04:23:39Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![duongkstn](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/duongkstn/32/8802_2.png) [@duongkstn](https://forum.rasa.com/u/duongkstn)\
**Post date:** [May 25, 2020, 4:23am UTC](https://forum.rasa.com/t/rasa-split-data-nlu-fails-which-algorithm-is-implemented/29259/1 "2020-05-25T04:23:39Z")

</div>

Hi, I want to split data by command: `rasa split data nlu --training-fraction 0.8` but the number of samples of test file is not exactly is 20% of total samples. In fact, It is 21.7%. I have a question:

- Why this happens to me ?
- Which is the built-in spliting data algorithm of rasa ? Is it

> sklearn.model\_selection.train\_test\_split

as of `DIETClassifiers` ?

---

<div class="post-metadata">

**Author:** ![Ghostvv](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/ghostvv/32/211_2.png) [@Ghostvv](https://forum.rasa.com/u/Ghostvv)\
**Post date:** [May 25, 2020, 12:57pm UTC](https://forum.rasa.com/t/rasa-split-data-nlu-fails-which-algorithm-is-implemented/29259/2 "2020-05-25T12:57:14Z")

</div>

does 20% correspond to integer number?

---

<div class="post-metadata">

**Author:** ![duongkstn](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/duongkstn/32/8802_2.png) [@duongkstn](https://forum.rasa.com/u/duongkstn)\
**Post date:** [May 26, 2020, 2:11am UTC](https://forum.rasa.com/t/rasa-split-data-nlu-fails-which-algorithm-is-implemented/29259/3 "2020-05-26T02:11:14Z")

</div>

I have 701 samples (18 distinct intents, 0 entities). I want my test set have 701 \* 20% = 140 or 141 samples but rasa outputted 148 samples. Could you explain the algorithm ?

---

<div class="post-metadata">

**Author:** ![Ghostvv](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/ghostvv/32/211_2.png) [@Ghostvv](https://forum.rasa.com/u/Ghostvv)\
**Post date:** [May 26, 2020, 7:35am UTC](https://forum.rasa.com/t/rasa-split-data-nlu-fails-which-algorithm-is-implemented/29259/4 "2020-05-26T07:35:01Z")

</div>

here is the method: [rasa/training\_data.py at 003403dc8fe537da021ee05511addb4e2f605111 · RasaHQ/rasa · GitHub](https://github.com/RasaHQ/rasa/blob/003403dc8fe537da021ee05511addb4e2f605111/rasa/nlu/training_data/training_data.py#L457)

---

<div class="post-metadata">

**Author:** ![duongkstn](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/duongkstn/32/8802_2.png) [@duongkstn](https://forum.rasa.com/u/duongkstn)\
**Post date:** [September 4, 2020, 5:19am UTC](https://forum.rasa.com/t/rasa-split-data-nlu-fails-which-algorithm-is-implemented/29259/5 "2020-09-04T05:19:32Z")

</div>

Hi @Ghostvv . After several months, I found the reason why `rasa data split` does not give precise number of training samples.   
Say overall we have X samples (x1 samples of label l1, x2 samples of label l2, …) and `training-fraction` is 0.8. (Note: x1 + x2 + … = X).   
In the code you sent, number of training samples is A = int(0.8 \* x1) + int(0.8 \* x2) + …   
Mathematically, A \<= int(0.8 \* X).

I am wondering the limitation of substraction of A and int(0.8 \* X) 🙂

---

<div class="post-metadata">

**Author:** ![Ghostvv](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/ghostvv/32/211_2.png) [@Ghostvv](https://forum.rasa.com/u/Ghostvv)\
**Post date:** [September 4, 2020, 1:46pm UTC](https://forum.rasa.com/t/rasa-split-data-nlu-fails-which-algorithm-is-implemented/29259/6 "2020-09-04T13:46:21Z")

</div>

oh, so we loose training examples, that is a bug

---

<div class="post-metadata">

**Author:** ![Ghostvv](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/ghostvv/32/211_2.png) [@Ghostvv](https://forum.rasa.com/u/Ghostvv)\
**Post date:** [September 4, 2020, 1:46pm UTC](https://forum.rasa.com/t/rasa-split-data-nlu-fails-which-algorithm-is-implemented/29259/7 "2020-09-04T13:46:39Z")

</div>

could you please create an issue for that

---

<div class="post-metadata">

**Author:** ![duongkstn](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/duongkstn/32/8802_2.png) [@duongkstn](https://forum.rasa.com/u/duongkstn)\
**Post date:** [September 7, 2020, 3:41am UTC](https://forum.rasa.com/t/rasa-split-data-nlu-fails-which-algorithm-is-implemented/29259/8 "2020-09-07T03:41:10Z")

</div>

on my way !

---

<div class="post-metadata">

**Author:** ![duongkstn](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.rasa.com/duongkstn/32/8802_2.png) [@duongkstn](https://forum.rasa.com/u/duongkstn)\
**Post date:** [September 7, 2020, 4:19am UTC](https://forum.rasa.com/t/rasa-split-data-nlu-fails-which-algorithm-is-implemented/29259/9 "2020-09-07T04:19:42Z")

</div>

Issue is submited at [#6582](https://github.com/RasaHQ/rasa/issues/6582)
