多元分类问题可以用多元逻辑回归和One-vs.-all(从二元到多元)两种方法解决,以scikit-learn为例:
import os
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from sklearn.linear_model import LogisticRegression
def readData(path):
"""
使用pandas读取数据
"""
data = pd.read_csv(path)
data.columns = ["label", "x1", "x2"]
return data
def multiLogit(data):
"""
使用逻辑回归对多元分类问题建模,并可视化结果
"""
features = ["x1", "x2"]
labels = "label"
plt.rcParams["font.sans-serif"]=["SimHei"]
# 创建一个图形框
fig = plt.figure(figsize=(12, 6), dpi=80)
methods = ['multinomial', 'ovr']
# 使用两种不同的方法对数据建模
for i in range(len(methods)):
model = LogisticRegression(multi_class=methods[i], solver='sag',