樱花数据集的Logistic回归
绘制散点图
import matplotlib.pyplot as plt import numpy as np from sklearn.datasets import load_iris iris = load_iris() #获取花卉两列数据集 DD = iris.data X = [x[0] for x in DD] Y = [x[1] for x in DD] plt.scatter(X[:50], Y[:50], color='red', marker='o', label='setosa') plt.scatter(X[50:100], Y[50:100], color='blue', marker='x', label='versicolor') plt.scatter(X[100:], Y[100:],color='green', marker='+', label='Virginica') plt.legend(loc=2) #左上角 plt.show()
运行结果
逻辑回归分析
from sklearn.linear_model import LogisticRegression iris = load_iris() X = iris.data[:, :2] #获取花卉两列数据集 Y = iris.target lr = LogisticRegression(C=1e5) lr.fit(X,Y) #meshgrid函数生成两个网格矩阵 h = .02 x_min, x_max = X[:, 0].min()-.5, X[:, 0].max()+.5 y_min, y_max = X[:, 1].min()-.5, X[:, 1].max()+.5 xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h)) Z = lr.predict(np.c_[xx.ravel(), yy.ravel()]) Z = Z.reshape(xx.shape) plt.figure(1, figsize=(8,6)) plt.pcolormesh(xx, yy, Z, cmap=plt.cm.Paired) # 按z的不同,颜色不一样 plt.scatter(X[:50,0], X[:50,1], color='red',marker='o', label='setosa') plt.scatter(X[50:100,0], X[50:100,1], color='blue', marker='x', label='versicolor') plt.scatter(X[100:,0], X[100:,1], color='green', marker='s', label='Virginica') plt.xlabel('Sepal length') plt.ylabel('Sepal width') plt.xlim(xx.min(), xx.max()) plt.ylim(yy.min(), yy.max()) plt.xticks(()) plt.yticks(()) plt.legend(loc=2) plt.show()
运行结果