机器学习1
第一次和机器学习打照面,还没学过python呢。除了领略到了机器学习的神奇之处,也在这个门槛上跌跌撞撞,结结实实地摔了跤吃了苦。往事开头难。
首先是安装,花了大半天,总是报错,哼,我已经截图保存制服它的证据了
初步了解了何为特征、标签、样本、模型、回归与分类(参考博客:https://blog.csdn.net/weixin_41445387/article/details/96024886)
身高体重问题
数据可视化可以更直观地观察数据特征
#创建数据集,写入numpy数组
import numpy as np import matplotlib.pyplot as plt from sklearn import datasets, linear_model data=np.array([[152,51],[156,53],[160,54],[164,55],[168,57],[172,60],[176,62],[180,65],[184,69],[188,72]]) print(data.shape) x,y=data[:,0].reshape(-1,1),data[:,1] plt.scatter(x,y,color='black') plt.xlabel('height (cm)') plt.ylabel('weight (kg)') plt.show()
print(data.shape) 数组大小:10行,2列
x,y=data[:,0].reshape(-1,1),data[:,1] 即 x=data[:,0].reshape(-1,1) y=data[:,1]
x=data[:,0].reshape(-1,1) //reshape(m,-1) : 改变维度为m行、1列 reshape(-1,m) : 改变维度为1行、m列
print(data[:,0]) #行的切片 每行的第一列的所有数据
print(data[:,1]) #列的切片 每行的第二列的所有数据
data[:,m:n] 取从m:n-1列的所有数据
然后,plt.show() 显示图片,//我简直刘姥姥进大观园,看啥都神奇,居然它就画出图了,虽然云里雾里,不知道发生了啥,反正很厉害的样子
plt.xlabel('height (cm)') //横轴显示 height (cm)
plt.ylabel('weight (kg)') //纵轴显示 weight (kg)
用一个线性回归模型来拟合身高-体重的数据
regr = linear_model.LinearRegression() regr.fit(x,y) plt.plot(x,regr.predict(x),color='blue') plt.xlabel('height (cm)') plt.ylabel('weight (kg)') plt.show() print("Standard weight for person with 163 is %.2f"%regr.predict([[165]]))
调用sklearn的线性模型,通过sklearn中的fit(x,y)来实现模型的训练
regr.predict([[165]]) 用模型预测 [165] 的对应标签
%f 表示输出浮点型数 %.2f 表示小数点后保留两位
plt.plot()函数画出一条线
输出结果是 56.92 //这个AI代码告诉我一件事,我还不胖,哈哈哈
KNN 一个样本与数据集中的k个样本最相似, 如果这k个样本中的大多数属于某一个类别, 则该样本也属于这个类别
距离的度量方法:常用的有:欧几里得距离、余弦值(cos), 相关度 (correlation), 曼哈顿距离 (Manhattan distance)或其他。
只有两种类别时,k一般取奇数
len() 方法返回对象(字符、列表、元组等)长度或项目个数
No,pain. No gain. 加油呀