【Python-ML】SKlearn库逻辑斯蒂回归(logisticregression) 使用
# -*- coding: utf-8 -*-
'''
Created on 2018年1月12日
@author: Jason.F
@summary: Scikit-Learn库逻辑斯蒂回归分类算法
'''from sklearn import datasets
import numpy as np
from sklearn.cross_validation import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from matplotlib.colors import ListedColormap
import matplotlib.pyplot as plt
#数据导入
iris=datasets.load_iris()
X=iris.data[:,[2,3]]
y=iris.target
print (np.unique(y))
#训练集和测试集划分
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.3,random_state=0)
#标准化
sc=StandardScaler()
sc.fit(X_train)#计算样本的均值和标准差
X_train_std=sc.transform(X_train)
X_test_std=sc.transform(X_test)#逻辑斯蒂回归
lr=LogisticRegression(C=1000.0,random_state=0)
lr.fit(X_train_std,y_train)
#模型预测
y_pred=lr.predict_proba(X_test_std[0,:])
print (y_pred[:,1])
#绘制决策边界
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.4, cmap=cmap)plt.xlim(xx1.min(), xx1.max())plt.ylim(xx2.min(), xx2.max())#绘制所有样本X_test,y_test=X[test_idx,:],y[test_idx]for idx,cl in enumerate(np.unique(y)):plt.scatter(x=X[y==cl,0],y=X[y==cl,1],alpha=0.8,c=cmap(idx),marker=markers[idx],label=cl)#高亮预测样本if test_idx:X_test,y_test =X[test_idx,:],y[test_idx]plt.scatter(X_test[:,0],X_test[:,1],c='',alpha=1.0,linewidths=1,marker='o',s=55,label='test set')
X_combined_std=np.vstack((X_train_std,X_test_std))
y_combined=np.hstack((y_train,y_test))
plot_decision_regions(X=X_combined_std, y=y_combined, classifier=lr, test_idx=range(105,150))
plt.xlabel('petal length[standardized]')
plt.ylabel('petal width[standardized]')
plt.legend(loc='upper left')
plt.show()#观察正则化参数C的作用:减少正则化参数C的值相当于增加正则化的强度
#观察:减小参数C值,增加正则化强度,导致权重系数逐渐收缩
weights,params=[],[]
for c in np.arange(-5,5,dtype=float):lr=LogisticRegression(C=10**c,random_state=0)lr.fit(X_train_std,y_train)weights.append(lr.coef_[1])params.append(10**c)
weights=np.array(weights)
plt.plot(params,weights[:,0],label='petal length')
plt.plot(params,weights[:,1],label='petal width',linestyle='--')
plt.ylabel('weight coefficient')
plt.xlabel('C')
plt.legend(loc='upper left')
plt.xscale('log')
plt.show()
结果:
【Python-ML】SKlearn库逻辑斯蒂回归(logisticregression) 使用相关推荐
- 机器学习(二)--sklearn之逻辑斯蒂回归和朴素贝叶斯
文章目录 1.逻辑斯蒂回归 2.朴素贝叶斯 3.三种分类算法的比较 上回说到,sklearn中的k近邻算法解决多分类问题.k近邻的基本步骤是:收集数据.创建分类器.训练.预测.评估性能.调参(参数就是 ...
- python做逻辑斯蒂二分类_Python实现逻辑斯蒂回归
Python实现逻辑斯蒂回归 本实验室根据两次考试成绩与是否通过的数据,通过logistic回归,最后获得一个分类器. 逻辑斯蒂回归 导入数据 import numpy as np def loadd ...
- ML之NBLoR:利用NB(朴素贝叶斯)、LoR(逻辑斯蒂回归)算法(+TfidfVectorizer)对Rotten Tomatoes影评数据集进行文本情感分析—五分类预测
ML之NB&LoR:利用NB(朴素贝叶斯).LoR(逻辑斯蒂回归)算法(+TfidfVectorizer)对Rotten Tomatoes影评数据集进行文本情感分析-五分类预测 目录 输出结果 ...
- ML之NBLoR:利用NB(朴素贝叶斯)、LoR(逻辑斯蒂回归)算法(+CountVectorizer)对Rotten Tomatoes影评数据集进行文本情感分析—五分类预测
ML之NB&LoR:利用NB(朴素贝叶斯).LoR(逻辑斯蒂回归)算法(+CountVectorizer)对Rotten Tomatoes影评数据集进行文本情感分析-五分类预测 目录 输出结果 ...
- SKlearn——逻辑斯蒂回归(LR)参数设置
sklearn-逻辑斯蒂回归 SKlearn--逻辑斯蒂回归(LR) 1. from skearn.linear_model import LogisticRegression 2.其中部分参数设置 ...
- 机器学习Python学习——逻辑斯蒂回归(Logistic Regression)
目录 1. 基本概念 2. 数学原理 3. 代码实现 3.1 代码分析 3.2 数据集分类实现 4. 总结 1. 基本概念 Logistic回归也是一种分类方法,用于两分类问题.其基本思想为:(1) ...
- 局部加权回归、逻辑斯蒂回归、感知器算法—斯坦福ML公开课笔记3
转载请注明:http://blog.csdn.net/xinzhangyanxiang/article/details/9113681 最近在看Ng的机器学习公开课,Ng的讲法循循善诱,感觉提高了不少 ...
- 最大熵阈值python_第六章-逻辑斯蒂回归和最大熵模型
逻辑斯谛回归是统计学习中的经典分类方法,和最大熵模型相比,具有以下的共同点和区别:共同点都属于概率模型,该模型要寻找的是给定一个x,得到输出变量Y的概率分布P(Y|x),如果是二分类,Y取值为0或1, ...
- 机器学习笔记之(3)——Logistic回归(逻辑斯蒂回归)
本博文为逻辑斯特回归的学习笔记.由于仅仅是学习笔记,水平有限,还望广大读者朋友多多赐教. 假设现在有一些数据点,我们用一条直线对这些点进行拟合(该直线称为最佳拟合直线),这个拟合的过程就称为回归. 利 ...
最新文章
- MacOS 终于可以完美使用 Podman 了!
- 【MM模块】Basic Invoice Verification 发票校验
- 剑指offer-99.调整数组顺序使奇数位于偶数前面
- c++17(18)-static_cast
- Windows 注册表开机启动总结
- 关于两个php.ini的说明
- 纪中B组模拟赛总结(2020.2.7)
- jsp javabean mysql_jsp mysql JavaBean
- Django获取请求参数方式
- MySQL_数据库表记录的操作
- 陕西机关事业单位工勤计算机考试成绩,2020年陕西省机关事业单位工人技术等级岗位考核公告发布 6月22日开始报名 9月中旬以后考核...
- 带参数的插入语句的问题
- Google 重返中国的忧虑
- 设计高性能大并发WEB系统架构注意点
- 请求并操作指定url处的xml文件
- CSDN 输入公式的方法
- 第十届中国开源黑客松等你来
- python unpack_Python使用struct处理二进制(pack和unpack用法)
- 高性能mysql学习笔记一
- 排队模型和排队系统仿真