导图社区 KNN算法
如果一个样本在特征空间中的K个最相似的样本中的大多数属于某一类别,则该样本也属于这个类别,来看看 K值的选择和kd树知识吧。
python中的pandas库的学习笔记,整理了Series/DataFrame、基本数据操作、高级处理的内容,快来学吧。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
KNN算法
定义
如果一个样本在特征空间中的K个最相似的样本中的大多数属于某一类别,则该样本也属于这个类别
API
KNeighborsClassifier(n_neighbors=5,algorithm="auto")
n_neighbors表示K值的选择
algorithm表示采用的是最近邻域法还是野蛮搜索法,还是auto
距离
欧式距离
曼哈顿距离
切比雪夫距离
闵可夫斯基距离
标准化欧式距离
余弦距离
汉明距离
杰卡德距离
马氏距离
K值的选择
k值过小:容易受到异常点的影响--过拟合
k值过大:受到样本均衡的问题--欠拟合
近似误差(关注的是训练集)--过拟合--在训练集表现好,测试集表现不好
估计误差(关注的是测试集)-较小,说明对未知数据预测效果更好
kd树
kd树的构建
最近邻域搜索
在本域内搜索
要跨到其他域搜索
案例:嫣尾花种类的预测--
数据的获取sklearn.datasets
小数据的获取:sklearn.datasets.load_*(本地)
大数据的获取:sklearn.datasets.fetch_*(网络)
数据集返回值的介绍:返回值为bunch(字典)
data:特征数据数组
target:标签(目标)数组
DESCR:数据描述
feature_names:特征名
target_names:标签名
数据可视化:seaborn(x=,y=,data=,hue="目标值",fit_reg=False不进行数据拟合)
数据集划分:sklearn.model_selection.train_test_split(x=特征住,y=目标值,test_size=0.2测试集大小,random_size=22随机数种子)
x_train,x_test,y_train,y_test为返回值
特征工程
特征预处理
归一化
定义:将原始数据映射到某个范围(0,1)之内
Api
sklearn.preprocessing.MinMaxScaler(feature_range=(0,1))
fit_transformer(X)转换为相同形状的array
总结:最大值和最小值非常容易受到异常点影响,所以这种方法鲁棒性较差,只适合传统精确小数据场景。
标准化
定义:将原始数据转变为均值为0,标准差为1的范围内
StandardScaler()
fit_trasformer()
总结:异常值对 结果影响较小,适合现代嘈杂数据
总结
简单有效,重新训练代价低,适合类域交叉样本,适合大样本自动分类
惰性学习,类别评分不是规格化,对不均衡的样本不擅长,计算量较大
机器学习
获取数据集
数据基本处理
数据分割
模型评估
交叉验证
定义:将训练集分为验证集和测试集,测试集不动,,将训练集均分为几份,叫做几折交叉验证
特点:不能提高测试精度,只是为了提供出更加精确的预测结果
网格搜索
对于模型的一些超参数,无法确定选择多大,模型训练效果最好的时候,一般使用网格搜索,分别测试出不同超参数的性能,并返回最优的超参数的选择
GridSearchCV(estimator=交叉验证模型名称,param_grid=超参数的个数,cv=几折交叉验证)
返回值
best_estimator:最好的模型
best_params_:最佳结果的参数组合
best_score_:最好的预测结果
cv_results_:整体模型的预测结果