
机器学习算法——logistic算法总结
发布日期:2021-05-07 05:53:24
浏览次数:27
分类:原创文章
本文共 2309 字,大约阅读时间需要 7 分钟。
#!/usr/bin/python# -*- coding:utf-8 -*-import numpy as npimport pandas as pdfrom sklearn.linear_model import LogisticRegressionfrom sklearn.preprocessing import StandardScaler, PolynomialFeaturesfrom sklearn.pipeline import Pipelineimport matplotlib.pyplot as pltimport matplotlib as mplimport matplotlib.patches as mpatchesif __name__ == "__main__": path = 'iris.data' # 数据文件路径 data = pd.read_csv(path, header=None) data[4] = pd.Categorical(data[4]).codes print("data[4]",data[4]) x, y = np.split(data.values, (4,), axis=1) x = x[:, :2] print("x=",x) lr = Pipeline([('sc', StandardScaler()),#去均值和方差归一化。且是针对每一个特征维度来做的,而不是针对样本 ('poly', PolynomialFeatures(degree=2)), ('clf', LogisticRegression())]) lr.fit(x, y.ravel()) y_hat = lr.predict(x) y_hat_prob = lr.predict_proba(x) np.set_printoptions(suppress=True) print('y_hat = \n', y_hat) print('y_hat_prob = \n', y_hat_prob) print(u'准确度:%.2f%%' % (100 * np.mean(y_hat == y.ravel()))) # 画图 N, M = 500, 500 # 横纵各采样多少个值 x1_min, x1_max = x[:, 0].min(), x[:, 0].max() # 第0列的范围 x2_min, x2_max = x[:, 1].min(), x[:, 1].max() # 第1列的范围 t1 = np.linspace(x1_min, x1_max, N) t2 = np.linspace(x2_min, x2_max, M) x1, x2 = np.meshgrid(t1, t2) # 生成网格采样点 x_test = np.stack((x1.flat, x2.flat), axis=1) # 测试点 mpl.rcParams['font.sans-serif'] = [u'simHei'] mpl.rcParams['axes.unicode_minus'] = False cm_light = mpl.colors.ListedColormap(['#77E0A0', '#FF8080', '#A0A0FF']) cm_dark = mpl.colors.ListedColormap(['g', 'r', 'b']) y_hat = lr.predict(x_test) # 预测值 y_hat = y_hat.reshape(x1.shape) # 使之与输入的形状相同 plt.figure(facecolor='w') plt.pcolormesh(x1, x2, y_hat, cmap=cm_light) # 预测值的显示 plt.scatter(x[:, 0], x[:, 1], c=y, edgecolors='k', s=50, cmap=cm_dark) # 样本的显示 plt.xlabel(u'花萼长度', fontsize=14) plt.ylabel(u'花萼宽度', fontsize=14) plt.xlim(x1_min, x1_max) plt.ylim(x2_min, x2_max) plt.grid() patchs = [mpatches.Patch(color='#77E0A0', label='Iris-setosa'), mpatches.Patch(color='#FF8080', label='Iris-versicolor'), mpatches.Patch(color='#A0A0FF', label='Iris-virginica')] plt.legend(handles=patchs, fancybox=True, framealpha=0.8) plt.title(u'鸢尾花Logistic回归分类效果 - 标准化', fontsize=17) plt.show()
发表评论
最新留言
不错!
[***.144.177.141]2025年03月23日 23时10分25秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
webwxbatchgetcontact一个神奇的接口
2021-05-07
Edge浏览器:你的的内核我的芯
2021-05-07
【考研英语-基础-简单句】简单句的核心变化_谓语情态
2021-05-07
Jetson AGX Xavier硬件自启动
2021-05-07
统计字符数
2021-05-07
JS数据类型的判断
2021-05-07
实现一个简易Vue(三)Compiler
2021-05-07
仿小米商城(上)
2021-05-07
自动安装服务2
2021-05-07
js的各种数据类型判断(in、hasOwnProperty)
2021-05-07
严格模式、混杂模式与怪异模式
2021-05-07
HTML 和 CSS 简单实现注册页面
2021-05-07
(SpringMVC)springMVC.xml 和 web.xml
2021-05-07
(LeetCode)Java 求解搜索旋转排序数组
2021-05-07
DP - Tickets - HDU - 1260
2021-05-07
Spring 与使用STOMP消息
2021-05-07
Java Swing JList:列表框组件
2021-05-07
jQuery中的动画
2021-05-07