Python数据挖掘框架scikit逻辑回归教程
逻辑回归是数据挖掘/机器学习中非常常用的分类器,本教程利用scikit中的逻辑回归来学习如何判断两个数值的大小关系。
如果还没有安装scikit,可以参考scikit安装教程。
代码如下:
#coding=utf-8
from sklearn import linear_model
from matplotlib import pyplot
#本程序建立逻辑回归模型
#让逻辑回归模型自动学习如何判断两个数值的大小关系
#训练数据集,共8个样本
#每个样本包含两个特征[a,b]
#前4个样本表示a<b,后4个样本表示a>b
data=[[3,4],[3,6],[3,7],[4,7],
[4,3],[6,3],[7,3],[7,4]]
#目标值,即a<b还是a>b
#0表示a<b,1表示a>b
target=[0,0,0,0,
1,1,1,1]
#初始化逻辑回归模型
logreg = linear_model.LogisticRegression(C=1e5)
#训练逻辑回归模型
logreg.fit(data, target)
#测试判断样本[100,101]的目标值
#即判断100<101还是100>101
print logreg.predict([100,101])
#同上
print logreg.predict([101,100])
#在一个2D图上绘制点阵
#如果x<y,则将点绘制成红色
#如果x>y,则将点绘制成蓝绿色
for x in range(0,20):
for y in range(0,20):
#输入[x,y],利用逻辑回归模型预测目标值
t=logreg.predict([x,y])
if(t==0):
pyplot.plot(x,y,'ro')
else:
pyplot.plot(x,y,'co')
pyplot.show()
运行结果如下:
示例训练了一个可以判断输入的两个数值的大小关系的逻辑回归分类器,对于输入的样本[a,b],如果a<b,分类器会将样本分类为0,如果a>b,分类器会将样本分类为1。
示例的最后利用逻辑回归分类器将坐标轴中的点进行分类(将每个点[x,y]看作一个样本),如果x<y,则将点绘制为红色,如果x>y,则将点绘制为蓝绿色。