四、挖掘建模——分类

训练集、验证集和测试集

  • 训练集:用于训练和拟合模型
  • 验证集:通过训练集训练出多个模型后,使用验证集数据来寻找模型得最佳参数
  • 测试集:模型泛化能力的考量(泛化指的是对未知数据的预测能力)
#划分训练集、验证集和测试集
from sklearn.model_selection import train_test_split
f_v=features.values
l_v=label.values
X_tt,X_validation,Y_tt,Y_valiation=train_test_split(f_v,l_v,test_size=0.2)#训练集,验证集
X_train,X_test,Y_train,Y_test=train_test_split(X_tt,Y_tt,test_size=0.25)#将训练集分为训练集和测试集
print(len(X_train),len(X_validation),len(X_test))

分类

1.KNN(K-Nearest Neighbors)

1)距离(欧式距离,曼哈顿距离,闵科夫斯基距离)
2)KD-Tree
主要思想:一未知的点,找其最近邻的K个点,K个点中属于标注1的点大于属于标注2的点,则未知的点属于标注1

#KNN
#1.确定参数,由指标可知参数为3时更好
from sklearn.neighbors import NearestNeighbors,KNeighborsClassifier
knn_clf=KNeighborsClassifier(n_neighbors=3)
#knn_clf_n5=KNeighborsClassifier(n_neighbors=5)
knn_clf.fit(X_train,Y_train)#拟合得到模型
#knn_clf_n5.fit(X_train,Y_train)
Y_pred=knn_clf.predict(X_validation)
#Y_pred_n5=knn_clf_n5.predict(X_validation)
#衡量指标
from sklearn.metrics import accuracy_score,recall_score,f1_score
print('ACC:',accuracy_score(Y_validation,Y_pred))
print('REC:',recall_score(Y_validation,Y_pred))
print('F-Score:',f1_score(Y_validation,Y_pred))
#print('ACC:',accuracy_score(Y_validation,Y_pred_n5))
#print('REC:',recall_score(Y_validation,Y_pred_n5))
#print('F-Score:',f1_score(Y_validation,Y_pred_n5))
2.训练集、验证集、测试集的建模结果
from sklearn.neighbors import NearestNeighbors,KNeighborsClassifier
knn_clf=KNeighborsClassifier(n_neighbors=3)
knn_clf.fit(X_train,Y_train)#拟合得到模型
#衡量指标
from sklearn.metrics import accuracy_score,recall_score,f1_score
print('Train:')
Y_pred=knn_clf.predict(X_train)
print('ACC:',accuracy_score(Y_train,Y_pred))
print('REC:',recall_score(Y_train,Y_pred))
print('F-Score:',f1_score(Y_train,Y_pred))
Y_pred=knn_clf.predict(X_validation)
print('Validation:')
print('ACC:',accuracy_score(Y_validation,Y_pred))
print('REC:',recall_score(Y_validation,Y_pred))
print('F-Score:',f1_score(Y_validation,Y_pred))
Y_pred=knn_clf.predict(X_test)
print('Test:')
print('ACC:',accuracy_score(Y_test,Y_pred))
print('REC:',recall_score(Y
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值