国外免费可以做网站的服务器,wordpress 少儿,网页设计界面图,如何给公司建立网站什么是K-近邻算法(KNN)根据邻居判断类型。如果一个样本在特征空间中有K个最相似#xff08;距离相近#xff09;的样本大多数属于一个类别#xff0c;则该样品也属于这个类别。如何求距离呢?非常简单,如图。a1,a2,a3代表样本a的特征值 b1,b2,b3代表b的样本值#xff0c;根…什么是K-近邻算法(KNN)根据邻居判断类型。如果一个样本在特征空间中有K个最相似距离相近的样本大多数属于一个类别则该样品也属于这个类别。如何求距离呢?非常简单,如图。a1,a2,a3代表样本a的特征值 b1,b2,b3代表b的样本值根据公式可以计算出a和b两个点的距离各个特征值越相近则距离越近。K-近邻算法需要做标准化。k-近邻算法的API算法流程无需考虑详细数据from sklearn.neighbors import KNeighborsClassifier
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_splitimport pandas as pddata pd.read_csv(路径)# 缩小数据范围
# data.query() 相当于sql语句,写条件,进行筛选
data data.query(x 1.0 x 1.25)
# 处理时间的数据 pd.to_datetime
time_value pd.to_datetime(data[time], units)
# 把日期格式转换为字典数据
time pd.DatetimeIndex(time_value)
# 构造一些特征,
data[day] time.day
data[hour] time.hour
data[weekday] time.weekday
# sklearn 1表示列
data data.drop([time], axis1)
# 把签到数量少于n的目标位置删除
place_count data.groupby(place_id).count()
# reset_index() 把place_id当做一个属性,以便获取到
tf place_count[place_count.row_id 3].reset_index()# 判断是否存在包含关系 ,果果数据中的 place_id 不在 tf.place_id 中,被过滤
data data[data[place_id].isin(tf.place_id)]
# 去处数据中的特征值和目标值
y data[place_id]
x data.drop([place_id], axis1)
# 进行训练值和特征值切分
x_train, x_test, y_train, y_test train_test_split(x, y, test_size0.25)# 特征工程,标准化
std StandardScaler()
# 对测试集和训练集进行标准化
x_train std.fit_transform(x_train)
# 因为前面已经fit一次了, fit会计算平均值和标准差,不用再计算一次,直接transform
x_test std.transform(x_test)
# 进行算法流程
knn KNeighborsClassifier(n_neighbors5)
# fit ,predict,score
fit knn.fit(x_train, y_train)
# 得出预测结果
y_predict fit.predict(x_test)
# 评估预测结果,得出准确率
knn.score(x_test, y_test)K-近邻算法优缺点优点 简单易于理解易于实现无需估计参数超参数无需训练。缺点K值取值 , K值取很小容易受异常点影响 , K取值很大 , 容易受数量波动影响。性能问题