您的位置:首页 > 编程语言 > Python开发

使用knn和logsitic对make_blobs数据集进行分类

2017-12-13 12:34 246 查看

1.导入模块

import numpy as np
import pandas as pd
from pandas import Series,DataFrame
#机器学习模型
from sklearn.linear_model import LogisticRegression
from sklearn.neighbors import KNeighborsClassifier
#导入make_plobs聚类数据生成器
from sklearn.datasets import make_blobs
#绘图
import matplotlib.pyplot as plt
%matplotlib inline


2.获取训练数据和测试数据

获取训练数据

train,target=make_blobs(n_samples=150,n_features=2,centers=[[1,3],[4,1],[6,5]])

#训练数据
X_train = train
Y_train = target


说明:make_blobs方法常被用来生成聚类算法的测试数据,make_blobs会根据用户指定的特征数量、中心点数量、范围等来生成几类数据,这些数据可用于测试聚类算法的效果。

参数:

n_samples是待生成的样本的总数。

n_features是每个样本的特征数。

centers表示类别数。

cluster_std表示每个类别的方差,例如我们希望生成2类数据,其中一类比另一类具有更大的方差,可以将cluster_std设置为[1.0,3.0]。

获取测试数据

#获取x、y轴取值范围
xmin,xmax = train[:,0].min()-0.5,train[:,0].max()+0.5
ymin,ymax = train[:,1].min()-0.5,train[:,1].max()+0.5

#生成x、y两个列表,做网格化处理
x = np.arange(xmin,xmax,0.05)
y = np.arange(ymin,ymax,0.05)
xx,yy=np.meshgrid(x,y)

#测试数据
x_test=np.c_[xx.ravel(),yy.ravel()]


3.确定学习模型

#knn模型
knnclf = KNeighborsClassifier()
#logistic模型
logistic = LogisticRegression()


4.用训练数据对模型进行训练

knnclf.fit(X_train,Y_train)
logistic.fit(X_train,Y_train)


5.用训练后的模型进行预测

y_pre_knn = knnclf.predict(x_test)
y_pre_logistic = logistic.predict(x_test)


6.绘图,展示效果

设置颜色

from matplotlib.colors import ListedColormap
cmap = ListedColormap(['r','g','b'])


绘制knn模型预测效果图

plt.scatter(x_test[:,0],x_test[:,1],c=y_pre_knn)
plt.scatter(train[:,0],train[:,1],c=target,cmap=cmap)




绘制logistic回归预测效果图

plt.scatter(x_test[:,0],x_test[:,1],c=y_pre_logistic)
plt.scatter(train[:,0],train[:,1],c=target,cmap=cmap)


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据 机器学习 python
相关文章推荐