说不定以后能用到
(注意:1.所有答案都需写在答题纸上,写在试卷上的无效。
2.涉及数据分析相关库的使用,假定都已经导入并且设置了别名,numpy
的别名为np,pandas的别名为pd,matplotlib.pyplot的别名为plt。
3.涉及到使用matplotlib.pyplot作图的,假定已经经过属性设置,能
够正确显示中文、负号。 )
三、Python编程题(每题7分,共14分)
- 已知一批数据,单价和运输成本是两个字段,其中的数据有:
单价 运输成本
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分) - 已知一批数据,销售额和利润是两个字段,其中的数据有:
销售额 利润
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,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分)