0导入相关库
import numpy as np
import pandas as pd
from sklearn import metrics # 评估
import statsmodels.api as sm
1 加载数据
df=pd.read_csv('Regression/Regression7/multi_logit.csv',header=None)
df.columns = ["y", "x1", "x2"]
features = ["x1", "x2"]
labels = ["y"]
df.info()
# df.sample(frac=0.05) # 随机取样(分数 四舍五入)
df.sample(n=5) # 5行
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200310213803673.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hlenVpaml1ZGV4aWFvYmFp,size_16,color_FFFFFF,t_70)
2 一对多分类
from sklearn.linear_model import LogisticRegression
model = LogisticRegression(multi_class='ovr', solver='sag',
max_iter=1000, random_state=42)
model.fit(df[features], df[labels])
print('系数:\n', model.coef_, '\n')
print('截距:\n', model.intercept_)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200310213816920.png)
2.1 分类概率
prob = model.predict_proba(df[features])
pd.DataFrame(prob)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200310213835655.png)
2.2 分类汇总情况
pred = model.predict(df[features])
print(metrics.classification_report(df['y'], pred))
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200310213900592.png)
2.3 混淆矩阵
confusion = metrics.confusion_matrix(df['y'], pred)
confusion
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020031021391487.png)
plt.matshow(confusion)
plt.title('混淆矩阵')
plt.colorbar()
plt.ylabel('预测')
plt.xlabel('实际')
plt.show()
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200310214132170.png)
3 多元逻辑回归
model = LogisticRegression(multi_class='multinomial', solver='sag',
max_iter=1000, random_state=42)
model.fit(df[features], df[labels])
print('系数:\n', model.coef_, '\n')
print('截距:\n', model.intercept_)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200310214122811.png)
3.1 分类概率
prob = model.predict_proba(df[features])
pd.DataFrame(prob)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200310214112197.png)
3.2 分类汇总情况
pred = model.predict(df[features])
print(metrics.classification_report(df['y'], pred))
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200310214028675.png)
3.3 混淆矩阵
confusion = metrics.confusion_matrix(df['y'], pred)
confusion
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200310214039671.png)
plt.matshow(confusion)
plt.title('混淆矩阵')
plt.colorbar()
plt.ylabel('预测')
plt.xlabel('实际')
plt.show()
plt.tight_layout()
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200310214014207.png)