1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| def test(x, y): lr = LogisticRegression(solver='liblinear') lr.fit(x, y) print('模型的准确率为{0}%'.format('%.2f'%(lr.score(x, y)*100))) x_train, x_test, y_train, y_test = train_test_split(x, y) y_pred = lr.predict(x_test) plt.figure(figsize=(14, 12)) plt.subplots_adjust(hspace=.3) plt.subplot(311) plt.scatter(range(len(x_test)), y_test+0.5, c='g', s=2, label='test') plt.scatter(range(len(x_test)), y_pred, c='r', s=2, label='pred') plt.title('测试结果') plt.yticks([0, 1], ['不违约', '违约']) plt.legend() plt.ylim([-0.5, 2.5]) data = pandas.concat([pandas.DataFrame(y_pred, columns=['pred']), pandas.DataFrame(y_test.tolist(), columns=['test'])], axis=1) data = data.stack().reset_index() data = data.drop(columns=[data.columns[0]]) data = data.rename(columns={data.columns[0]: 'labels', data.columns[1]: 'value'}) data['xzhou'] = 1 plt.subplot(312) plt.title('测试结果') seaborn.violinplot(data=data, x='xzhou', y='value', split=True, hue='labels') plt.yticks([0, 1], ['不违约', '违约']) plt.show() return lr
|
评论区