1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Python 分类算法(1)——逻辑回归logistic regression之代码实现(2)

Python 分类算法(1)——逻辑回归logistic regression之代码实现(2)

时间:2019-02-21 14:05:31

相关推荐

Python 分类算法(1)——逻辑回归logistic regression之代码实现(2)

在上一节中,根据逻辑回归的原理,利用python编写了实现线性分类的代码。

Python 分类算法(1)——逻辑回归logistic regression之代码实现(1)

本节中,直接调用sklearn中的逻辑回归函数,还是利用上节中的数据,完成数据分类。

import numpy as npimport pandas as pdscatterdata=pd.read_csv("C:/Users/Ray/Desktop/logistic regression/data3.csv",header=None)## scatterdata.head()data=np.array(scatterdata)# print(data[:,1])

x=data[:,0:2]y=data[:,2]# print(x.shape)

调用sklearn中的逻辑回归函数

from sklearn.linear_model import LogisticRegressionfrom sklearn import metricslogmodel=LogisticRegression()logmodel.fit(x,y)y_pre=logmodel.predict(x)

from sklearn.metrics import confusion_matriximport seaborn as snsimport matplotlib.pyplot as pltimport matplotlibmatplotlib.rcParams['font.sans-serif'] = ['SimHei']mat = confusion_matrix(y,y_pre)sns.heatmap(mat, square=True, annot=True, cbar=False)plt.xlabel('预测值')plt.ylabel('真实值');

print(mat)print(metrics.classification_report(y, y_pre))from sklearn.metrics import accuracy_scoreprint('分类精度为:',accuracy_score(y,y_pre))

根据上面的结果利用contourf绘制分隔线。

from matplotlib.colors import ListedColormapimport matplotlibmatplotlib.rcParams['axes.unicode_minus']=Falsematplotlib.rcParams['font.sans-serif'] = ['SimHei']def plot_decision_regions(X, y, classifier, test_idx=None, resolution=0.02):markers = ('s', 'x', 'o', '^', 'v')colors = ('red', 'blue', 'lightgreen', 'gray', 'cyan')cmap = ListedColormap(colors[:len(np.unique(y))])x1_min, x1_max = X[:, 0].min() - 1, X[:, 0].max() + 1x2_min, x2_max = X[:, 1].min() - 1, X[:, 1].max() + 1xx1, xx2 = np.meshgrid(np.arange(x1_min, x1_max, resolution),np.arange(x2_min, x2_max, resolution))Z = classifier.predict(np.array([xx1.ravel(), xx2.ravel()]).T)Z = Z.reshape(xx1.shape)plt.contourf(xx1, xx2, Z, alpha=0.3, cmap=cmap)pos=where(y==1)neg=where(y==0)plt.scatter(x[pos[0],0],x[pos[0],1],marker='o',c='b')plt.scatter(x[neg[0],0],x[neg[0],1],marker='x',c='r')plt.xlim(xx1.min(), xx1.max())plt.ylim(xx2.min(), xx2.max())

plot_decision_regions(X=x, y=y, classifier=logmodel)

上节中的分类效果如下图所示

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。