相似的样本,特征之间的值相近
!欧式距离,需要进行标准化处理
实例:预测入住位置
ighbors import KNeighborsClassifier
from sklearn.preprocessing import StandardScaler
from sklearn. import TfidfVectorizer
特征值:row_id, x_y坐标,准确性,时间,
目标值:place_id
分类问题
我们用到dataframe.query
data = pd.read_csv("./data/FBlocation/train.csv")# print(data.head(10))# 处理数据# 缩小数据,查询数据晒讯data = data.query("x > 1.0 & x < 1.25 & y > 2.5 & y < 2.75")
# 处理时间的数据time_value = pd.to_datetime(data['time'], unit='s')print(time_value)# 把日期格式转换成 字典格式time_value = pd.DatetimeIndex(time_value)# 构造一些特征data['day'] = time_value.daydata['hour'] = time_value.hourdata['weekday'] = time_value.weekday# 把时间戳特征删除data = data.drop(['time'], axis=1)print(data)
place_count = upby('place_id').count()
tf = place_count[w_id > 3].reset_index()
data = data[data['place_id'].isin(tf.place_id)]# 取出数据当中的特征值和目标值y = data['place_id']x = data.drop(['place_id'], axis=1)
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.25)
特征工程(标准化)std = StandardScaler()# 对测试集和训练集的特征值进行标准化x_train = std.fit_transform(x_train)x_test = ansform(x_test)
发现准确率不高,可以修正特征工程,或者drop row-id
# 进行算法流程 # 超参数knn = KNeighborsClassifier()# # fit, predict,scoreknn.fit(x_train, y_train)# # 得出预测结果y_predict = knn.predict(x_test) # # 得出准确率print("预测的准确率:", knn.score(x_test, y_test))
k值取得小:受异常点影响
k值取得大:容易受数量波动
knn = KNeighborsClassifier(n_neighbors=5) 超参数
概率
训练集误差大的话,结果肯定不好,不需要调参
假设了词语之间的独立关系,会对结果造成干扰
指定系数一般为1,分子分母同时加一
estimator
混淆矩阵 真正例 伪反例
F1score 反映模型稳健性
ics.classification_report()
##模型选择与调优
1.交叉验证
训练集分为两部分,训练集和验证集
2.网格搜索
手动指定——超参数
每组超参数都用交叉验证来评估
del_selection.GridSearchCV
estimator估计器
param_grid 估计器参数
cv交叉验证
best_score_
best_estinator_
cv_results_
本文发布于:2024-01-29 13:58:51,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170650793415774.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |