Python机器学习,均值聚类例题

说不定以后能用到

(注意:1.所有答案都需写在答题纸上,写在试卷上的无效。
2.涉及数据分析相关库的使用,假定都已经导入并且设置了别名,numpy
的别名为np,pandas的别名为pd,matplotlib.pyplot的别名为plt。
3.涉及到使用matplotlib.pyplot作图的,假定已经经过属性设置,能
够正确显示中文、负号。 )

三、Python编程题(每题7分,共14分)

  1. 已知一批数据,单价和运输成本是两个字段,其中的数据有:
    单价 运输成本
    3.6 1.6
    6.5 2.8
    35.9 6.7
    5.9 3.2
    4.1 1.9
    4.4 2.2
    1.8 0.7
    7.6 4.0
    请编写程序,以单价为特征、运算成本为标签,通过学习以上数据构建一元线性回归算法模型,在此基础上,输出一元线性回归模型的两个参数、并调用预测方法输出单价为10和20时的运输成本。
    解:
    from sklearn import linear_model (1分)
    #数据(必须是二维数组)
    x = np.array([3.6,6.5,35.9,5.9,4.1,4.4,1.8,7.6]).reshape(8,1) (1分)
    #(一位数组不行,是行)二维数组8行1列
    y = np.array([1.6,2.8,6.7,3.2,1.9,2.2,0.7,4.0]).reshape(8,1) (1分)
    #模型创建
    model = linear_model.LinearRegression() (1分)
    #模型学习
    model.fit(x,y) (1分)
    #输出模型参数
    print(model.coef_[0],model.intercept_) (1分)
    #模型预测(无论是一个或者多个,必须写为二维数组的形式【成列展示】)
    print( model.predict([[10],[20]]) ) (1分)
  2. 已知一批数据,销售额和利润是两个字段,其中的数据有:
    销售额 利润
    174 86
    54 9
    90 24
    28 19
    54 37
    15 7
    161 33
    133 86

如果销售额和利润都是特征,采用K均值聚类算法学习以上数据,划分为3个聚类,在此基础上,输出两个聚类中心点的坐标,并调用预测方法输出预测[50,15]、[100,25]、[150,50]这三个点分别是属于哪个聚类的。
解:from sklearn.cluster import KMeans (1分)
#数据(必须是二维数组)
x = np.array([[174,86],[54,9],[90,24],[28,19],
[54,37],[15,7],[161,33],[133,86]]) (2分)#8行2列
#模型创建
kmeans = KMeans(n_clusters=3) (1分)
#模型学习
kmeans.fit(x) (1分)
#输出模型参数
print( kmeans.cluster_centers_) (1分)
#模型预测(二维数组,两列形式)
print( kmeans.predict([[50,15],[100,25],[150,50]])) (1分)

  1. 在上一题的数据基础上,如果销售额和利润都是特征,假设引入标签列将以上数据划分为了[1,1,1,2,2,2,3,3],请采用K邻近算法学习以上数据,设定k为3,在此基础上,调用预测方法输出预测[50,15]、[100,25]、[150,50]这三个点分别是属于哪个标签的。
    解:from sklearn.neighbors import KNeighborsClassifier (1分)
    #数据
    x = np.array([[174,86],[54,9],[90,24],[28,19],
    [54,37],[15,7],[161,33],[133,86]]) (2分)
    y = np.array([1,1,1,2,2,2,3,3]) (1分)
    #模型创建
    knn = KNeighborsClassifier(n_neighbors = 3) (1分)
    #模型学习
    knn.fit(x,y) (1分)
    #模型预测
    print( knn.predict([[50,15],[100,25],[150,50]])) (1分)

猜你喜欢

转载自blog.csdn.net/weixin_43299461/article/details/85457621