特征工程概念入门
特征工程
特征:对任务有用的属性信息
特征工程:利用专业背景知识和技巧处理数据,让模型效果更好
特征工程的内容
特征提取:特征向量
特征预处理:不同特征对模型影响一致性
特征降维:保证数据的主要信息要保留下来
特征选择:从特征中选择出一些重要特征训练模型
特征组合:把多个特征合并组合成一个特征
模型拟合问题
过拟合欠拟合
拟合:用来表示模型对样本分布点的模拟情况
模型在训练集上表现很差、在测试集表现也很差,是欠拟合
模型在训练集上表现很好、在测试集表现很差,是过拟合
过拟合欠拟合产生的原因
泛化:具体的、个别的扩大为一般的能力
欠拟合产生的原因:模型过于简单
过拟合产生的原因:模型太过于复杂、数据不纯、训练数据太少
机器学习开发环境
基于Python的scikit-learn库
安装方法:
conda创建环境
conda create -n edumlpy3.9 python==3.9
conda activate 环境名
pip install scikit-learn -i https://pypi.tuna.tsinghua.edu.cn/simple
KNN算法 分类问题与回归问题
K-近邻算法 •样本相似性:样本都是属于一个任务数据集的。样本距离越近则越相似。
(1)K值过小:用较小邻域中的训练实例进行预测容易受到异常点的影响K值的减小就意味着整体模型变得复杂,容易发生过拟合
(2)K值过大:用较大邻域中的训练实例进行预测受到样本均衡的问题且K值的增大就意味着整体的模型变得简单,欠拟合
(3)如何对K超参数进行调优?
需要一些方法来寻找这个最合适的K值 交叉验证、网格搜索
分类(离散) 回归(连续)
KNN算法API使用-分类问题
from sklearn.neighbors import KNeighborsClassifier #装包
x = [[0], [1], [2], [3]] #数据处理
y = [0, 0, 1, 1]
model = KNeighborsClassifier(n_neighbors=3) #实例化对象
model.fit(x, y) #训练
mypre = model.predict([[4]]) #预测
print(f'预测值:{mypre}')
KNN算法API使用-回归问题
from sklearn.neighbors import KNeighborsRegressor
e = KNeighborsRegressor(n_neighbors=2)
x = [[0, 0, 1],
[1, 1, 0],
[3, 10, 10],
[4, 11, 12]]
y = [0.5, 0.6, 0.7, 0.8]
e.fit(x, y)
myret = e.predict([[2,10,5]])
print(f'预测值:{myret}')
以上为我的分享~