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

来源:互联网 发布:淘宝上回收电脑靠谱吗 编辑:程序博客网 时间:2024/06/01 09:13

1.导入模块

import numpy as npimport pandas as pdfrom pandas import Series,DataFrame#机器学习模型from sklearn.linear_model import LogisticRegressionfrom 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 = trainY_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.5ymin,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 ListedColormapcmap = 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)

这里写图片描述

阅读全文
0 0
原创粉丝点击