机器学习算法笔记(三):数据归一化处理

所谓数据归一化,就是将所有的数据映射到同一尺度,从而便于不同单位或量级的指标能够进行比较和加权。例如,一组数据中包含一个人的年龄与他的年薪两个属性,若我们直接运用kNN算法来建立模型,不难发现数据的变化会被年薪这个属性“主导”(因为年薪的数量级往往比一个人的年龄高很多)。所以在将数据“喂”给我们的机器学习算法之前,对属性进行归一化处理就显得尤为重要。 阅读全文

机器学习算法笔记(二):kNN算法进阶——超参数与网格搜索

上一篇文章中对kNN算法进行了初步的实现,并将其封装到了一个模块当中便于使用:

#文件名:main.py

from sklearn import datasets
from kNNmodule.model_selection import train_test_split
from kNNmodule.kNN import KNNClassifier


iris = datasets.load_iris() #加载著名的鸢尾花数据集

"""
sklearn中,datasets的鸢尾花数据集一共有五个部分组成,分别为:
data(鸢尾花的特征矩阵)
target(结果标签对应的向量)
targetnames(标记所对应的鸢尾花的名字)
DESCR(描述,即该数据集的文档)
feature_names(三种鸢尾花的特征所对应的的名字)
"""

X = iris.data
y = iris.target

X_train, X_test, y_train, y_test = train_test_split(X, y)

my_knn_clf = KNNClassifier(k=3)
my_knn_clf.fit(X_train, y_train)
y_predict = my_knn_clf.predict(X_test)

print(y_predict)
print(y_test)
print(sum(y_predict == y_test)) #打印预测准确的个数
print(sum(y_predict == y_test) / len(y_test)) #打印预测的准确率 

在上述代码的第24行中 阅读全文

机器学习算法笔记(一):k近邻算法(kNN)初探

k近邻算法(K-Nearest Neighbor,简称kNN)是机器学习中的一种基本分类和回归方法。我们给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的k个实例,这k个实例的多数属于某个类,就把该输入实例分类到这个类中(类似于现实生活中少数服从多数的思想)。根本思想就是:两个样本,如果它们的特征足够相似,它们就有更高的概率属于同一个类别,我们要做的就是根据现有训练数据集,判断新的样本属于哪种类型。 阅读全文