栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

机器学习day3

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

机器学习day3

k近邻算法

即距离我们选中中心点距离最近的k个点

scikit-learn中所有的机器学习模型都在各自的类中实现,这些类被称为Estimator类。k近邻分类算法是在neighbors模块的KNeighborsClassifier类中实现的。我们需要将这个类实例化为一个对象,然后才能使用这个模型。

1、这时我们需要设置模型的参数。KNeighborsClassifier最重要的参数就是邻居的数目,这里我们设为1

from sklearn.neighbors import KNeighborsClassifier
knn=KNeighborsClassifier(n_neighbors=1)#设置邻居的数目为1
#knn封装了训练数据构建模型的算法、对新数据点进行预测的算法、算法从训练数据中提取的信息
#对于KNeighborsClassifier,里面只保存了训练集
knn.fit(X_train, y_train)#调用knn对象的fit方法,输入numpy数组,训练数据、训练标签。

2、使用模型做出预测

X_new=np.array([[5,2.9, 1, 0.2]])#注意scikit-learn的输入数据必须是二维数组
print("X_new.shape:{}".format(X_new.shape))

3、调用knn对象的predict方法来预测

prediction = knn.predict(X_new)#调用knn.predict预测新数据的标签
print("Prediction:", prediction)#打印预测新数据的类别
print("Predicted target name:",
       iris_dataset['target_names'][prediction])#打印新数据预测的类别名字

 

4、对模型做出评估

对模型做出评估是重要的,因为我们无法预测我们的模型是否准确,而我们也不知道样本的实际品种。

我们可以通过计算精度(accuracy)来衡量模型的优劣,精度就是品种预测正确的花所占的比例 

y_pred=knn.predict(X_test)#输入之前分出来的测试集X_test,对其进行预测
print("Test set predictions:n{}".format(y_pred))#输出预测结果

 

print("Test set score:{:.3f}".format(np.mean(y_pred==y_test)))#np.mean函数输出两个矩阵/数组的相似程度

相关np.mean可以看这个链接。 

http://t.csdn.cn/301al

我们还可以使用knn对象的score方法来计算测试集的精度

print("Test set score:{:.2f}".format(knn.score(X_test, y_test)))#使用knn对象的score方法打印测试集的精度

 

5、总结

X_train, X_test, y_train, y_test=train_test_split(
    iris_dataset['data'], iris_dataset['target'], random_state=0)#进行伪随机分成测试集与训练集

knn=KNeighborsClassifier(n_neighbors=1)#设置k近邻算法的k=1

knn.fit(X_train, y_train)#将训练集引入调用knn对象的fit方法,输入numpy数组,训练数据、训练标签。

y_pred=knn.predict(X_test)
print("Test set predictions:n{}".format(y_pred))
print("Test set score:{:.3f}".format(np.mean(y_pred==y_test)))#np.mean函数输出两个矩阵/数组的相似程度

print("Test set score:{:.2f}".format(knn.score(X_test, y_test)))#使用knn.score打印精度

以上代码最重要的是

knn.fit#构建模型

knn.predict#预测模型的输出

knn.score#来评估模型的精度

它们是监督学习模型中最常用的接口。

6、附加

k近邻算法

预先了解

距离:

Lp距离(闵可夫斯基距离)

度量有序特征,包括数值和可以转换为数值进行度量的非数值。

如小学,高中可以转化为0,1.。。。。。
http://t.csdn.cn/tSyHehttp://t.csdn.cn/tSyHe

  1. L₁曼哈顿距离:坐标绝对值之和
  2. L₂欧氏距离:坐标平方根号
  3. L(无穷)切比雪夫距离:max{坐标和}如何计算簇中心

VDM距离

http://t.csdn.cn/xxmTxhttp://t.csdn.cn/xxmTx

 表示难以转换为数值而直接度量的数值

VDM距离刻画的是特征取值在各簇的分布差异。

混合加权距离

余弦相似度

刻画两个向量之间的夹角,适合于与向量方向相关的距离度量点。

分别计算每个点与簇中心的距离,然后取平均值继续求出新的簇中心,开始新一轮的迭代。

http://t.csdn.cn/H8ZtShttp://t.csdn.cn/H8ZtS先行了解

k-mean

k-medain

k-modist

k-二分

k-mediods

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/870871.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号