Прежде чем углубиться в машинное обучение, важно понять концепции:
Набор данных: это ваша коллекция данных, которая содержит столбцы и столбец target
, которые мы хотим предсказать.
Тип проблемы: Это проблема, с которой мы сталкиваемся. Пожалуйста, проверьте следующую ссылку, которая объясняет больше об этом: типы проблем .
Metri c: Это для оценки производительности нашей модели, и у вас есть выбрать один, чтобы правильно оценить его. Например, если у вас есть True
или False
, вы можете быть оштрафованы каждый раз, когда ваша модель делает ошибку, как если бы он выбрал True
в качестве ответа, он может получить 50% правильного результата, и это модель с точностью 0.5
который не является правильным, поскольку он только отвечает True
. Я надеюсь, что этот пост поможет вам лучше понять.
Перекрестная проверка: Перекрестная проверка sklearn .
Обучение и разделение тестов: мы разбиваем наш набор данных на части, где будем использовать некоторую часть данных для train
, а другую для test
или оценим нашу модель.
Большую часть этого можно сделать с помощью популярной библиотеки sklearn
, в следующем примере:
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import make_scorer, accuracy_score
from sklearn.model_selection import cross_val_score, train_test_split
dataset = load_iris()
X_train, X_test, y_train, y_test = train_test_split(
dataset.data, dataset.target, test_size=0.3, random_state=0)
# No corss validation
model = RandomForestClassifier()
model.fit(X_train, y_train)
predictions = model.predict(X_test)
accuracy_score(y_test, predictions)
# With cross validation
model = RandomForestClassifier()
accuracy_scorer = make_scorer(accuracy_score)
scores = cross_val_score(model, X_train, y_train, scoring=accuracy_scorer)
scores.mean()
Этот пример является очень простым, где данные обрабатываются и просты, также возникает проблема решается в большинстве случаев с точностью 0.9
. Вам, вероятно, придется больше погружаться, чтобы решить проблему с большим количеством столбцов, чем просто. Я предлагаю погрузиться в kaggle и поискать ноутбуки или ядра с примерами, где люди обрабатывают какой-то набор данных и получают базовый уровень для данной проблемы, и вы можете изучать новые темы, такие как OneHotEncoding
FeatureExtractions
и и многое другое.
Также есть библиотеки, которые делают это для вас, или автоматизируют это и могут решить проблему классификации, посмотрите MLBlocks или ATM .