Sklearn train test split: разделение данных для обучения и тестирования модели
<p>
<code class="hljs">split</code> - это функция модуля <code class="hljs">sklearn.model_selection</code>, которая используется для разделения набора данных на обучающую и тестовую выборки. Эта функция очень полезна для оценки производительности модели на новых данных, которые она не видела во время обучения.
</p>
<p>
Часто в машинном обучении требуется разделить доступные данные на две части: одна часть будет использоваться для обучения модели, а другая - для ее тестирования. Это позволяет оценить производительность модели на новых данных, которые она не видела во время обучения. Такой подход называется контролируемым разделением данных.
</p>
<p>
Формат функции <code class="hljs">train_test_split()</code>:
</p>
<pre><code class="hljs python">train_test_split(X, y, test_size, train_size, random_state, shuffle, stratify)
</code></pre>
<p>
Параметры функции:
</p>
<ul>
<li><code class="hljs">X</code> - массив признаков или матрица данных, которые мы хотим разделить на обучающую и тестовую выборки.</li>
<li><code class="hljs">y</code> (опционально) - массив целевых значений или меток классов, связанных с данными в <code class="hljs">X</code>.</li>
<li><code class="hljs">test_size</code> - размер тестовой выборки (в долях или целом числе), по умолчанию <code class="hljs">test_size=0.25</code> (25%).</li>
<li><code class="hljs">train_size</code> (опционально) - размер обучающей выборки (в долях или целом числе), по умолчанию <code class="hljs">train_size=0.75</code> (75%).</li>
<li><code class="hljs">random_state</code> (опционально) - число, используемое для установки случайного состояния и обеспечения воспроизводимости результатов.</li>
<li><code class="hljs">shuffle</code> (опционально) - флаг, указывающий, следует ли перемешивать данные перед разделением. По умолчанию <code class="hljs">shuffle=True</code>.</li>
<li><code class="hljs">stratify</code> (опционально) - массив целевых значений или меток классов, связанных с данными в <code class="hljs">X</code>. Если указан, предотвращает смещение распределения классов между обучающей и тестовой выборками.</li>
</ul>
<p>
Пример использования функции <code class="hljs">train_test_split()</code>:
</p>
<pre><code class="hljs python">from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris
# Загружаем набор данных
iris = load_iris()
X = iris.data
y = iris.target
# Разделяем данные на обучающую и тестовую выборки
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
</code></pre>
<p>
В приведенном примере мы импортируем функцию <code class="hljs">train_test_split()</code> из модуля <code class="hljs">sklearn.model_selection</code> и загружаем набор данных <code class="hljs">iris</code> с помощью функции <code class="hljs">load_iris()</code> из модуля <code class="hljs">sklearn.datasets</code>. Затем мы разделяем данные на обучающую и тестовую выборки путем вызова функции <code class="hljs">train_test_split()</code> и передачи ей массива признаков <code class="hljs">X</code> и массива целевых значений <code class="hljs">y</code>. Устанавливаем размер тестовой выборки равным 30% с помощью параметра <code class="hljs">test_size=0.3</code>. Также мы устанавливаем <code class="hljs">random_state=42</code> для обеспечения воспроизводимости результатов.
</p>
<p>
После выполнения кода в переменных <code class="hljs">X_train</code>, <code class="hljs">X_test</code>, <code class="hljs">y_train</code> и <code class="hljs">y_test</code> будут содержаться соответственно обучающая и тестовая выборки для массивов признаков и целевых значений.
</p>
<p>
Использование функции <code class="hljs">train_test_split()</code> является одним из ключевых шагов в машинном обучении, так как оно позволяет оценить производительность модели на новых данных. Точное и корректное разделение данных на обучающую и тестовую выборки помогает избежать переобучения и получить более объективные результаты оценки модели.
</p>