#python #machine-learning #scikit-learn #logistic-regression
Вопрос:
Я работаю над созданием простого сценария машинного обучения python, который будет предсказывать, будет ли кредит одобрен или нет, на основе следующих параметров
business experience: should be greater than 7
year of founded: should be after 2015
loan: no previous or current loan
Если вышеуказанные условия совпадают, то будет одобрен только кредит. Этот набор данных можно загрузить по этой ссылке:
https://drive.google.com/file/d/1QtJ3EED7KDqJDrSHxHB6g9kc5YAfTlmF/view?usp=sharing
Для приведенных выше данных у меня есть сценарий ниже
from sklearn.linear_model import LogisticRegression
import pandas as pd
import numpy as np
data = pd.read_csv("test2.csv")
data.head()
X = data[["Business Exp", "Year of Founded", "Previous/Current Loan"]]
Y = data["OUTPUT"]
clf = LogisticRegression()
clf.fit(X, Y)
test_x2 = np.array([[9, 2017, 0]])
Y_pred = clf.predict(test_x2)
print(Y_pred)
Я передаю тестовые данные test_x2
. Тестовые данные: если бизнес-опыт равен 9, год основания-2017, а текущий/предыдущий кредит отсутствует, это означает, что кредит будет предоставлен. Таким образом, он должен предсказывать, и результат должен быть 1
, но он показывает 0. Есть ли какие-либо проблемы с кодом или набором данных. Поскольку я новичок в машинном обучении и все еще изучаю его, я создал этот пользовательский набор данных для своего собственного понимания.
Пожалуйста, кто-нибудь может дать несколько хороших предложений. Спасибо
Комментарии:
1. Если у вас есть точные критерии для определения того, одобрен ли кредит, почему вы используете машинное обучение?
if biz_exp > 7 and founded > 2015 and prior_loans == 0
следует точно «предсказать», будет ли одобрен кредит.2. @TomMcLean Можете ли вы, пожалуйста, предложить любую другую модель
3. @ddejohn У меня есть много других параметров с большим количеством значений для них. Я не хочу начинать с большого объема данных, поэтому я просто начинаю с меньшего количества данных, чтобы у меня было хорошее понимание
4. Ну, модель машинного обучения никогда не бывает точной. Какие еще тесты вы проводили? Вы проверили кривую ROC ? Возможно, ваша модель работает лучше, чем вы думаете?
5. OP, смотрите эту статью для других моделей бинарной классификации, которые вы могли бы изучить.
Ответ №1:
Вы должны использовать StandardScaler() в конвейере
from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import make_pipeline
import pandas as pd
import numpy as np
data = pd.read_csv("test2.csv")
data.head()
X = data[["Business Exp", "Year of Founded", "Previous/Current Loan"]]
Y = data["OUTPUT"]
clf = make_pipeline(StandardScaler(), LogisticRegression())
clf.fit(X, Y)
test_x2 = np.array([[9, 2017, 0]])
Y_pred = clf.predict(test_x2)
print("prediction = ", Y_pred.item())
prediction = 1
print("score = ", clf.score(X, Y))
score = 0.95535
Комментарии:
1. Просто хотел узнать, как мы можем напечатать, насколько точна модель?
2. Используйте функцию оценки.