机器学习

机器学习是从数据中自动分析获得规律(模型),并利用规律对未知数据进行预测。
数据集的构成(文件)
特征值+目标值
MySQL瓶颈(不适用机器学习的原因):1.性能瓶颈,读取速度慢。2.格式不太符合

特征工程
特征工程是将原始数据转换为更好地代表预测模型的潜在问题的特征的过程,从而提高了对未知数据的预测准确性。
数据的特征抽取:对文本等数据进行特征值化
sklearn特征抽取的API:sklearn.feature_extraction
字典数据抽取:把字典中一些类别数据,分别进行转换
成特征
TF-IDF:如果某个词或短语在一篇文章中出现的概率高,并且在其他文中很少出现,则认为此词或短语具有很好的类别区分能力,适合用来分类
TF-IDF作用:用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。
数组形式,有类别的这些特征先要转换字典数据

数据的特征预处理
通过特定的统计方法(数学方法)将数据转换成算法要求的数据
数值型数据:标准缩放:
1.归一化
2.标准化
类别型数据:one-hot编码
时间类型:时间的切分
Sklearn特征处理API:sklearn.preprocessing
sklearn归一化API:sklearn.preprocessing.MinMaxScaler
MinMaxScaler(feature_range=(0,1)…):每个特征缩放到给定范围
归一化:通过对原始数据进行变换把数据映射到[0,1]之间x1 = (x-min)/(max-min)
标准化:通过对原始数据进行变换把数据变换到均值为0,方差为1范围内。
缺失值处理:
删除:如果每列或者行数据缺失值达到一定的比例,可以放弃
插补:可以通过缺失值每行或者每列的平均值,中位数来填充
sklearn缺失值API:sklearn.preprocessing.imputer
数据的降维
1.特征的选择
2.主成分分析
特征选择的原因
冗余:部分特征的相关度高,容易消耗计算机性能
噪声:部分特征对预测结果有影响
特征选择就是单纯地从提取到的所有特征中选择部分特征作为训练集特征,特征在选择前和选择后可以改变值,也可以不改变值,但是选择后的特征维数肯定比选择前要小。
主要方法:Filter(过滤式):VarianceThreshold、Embedded(嵌入式):正则化、决策树;Wrapped(包裹式)、神经网络
sklearn特征选择API:sklearn.feature_selection.VarianceThreshold:删除低方差的特征

sklearn主成分分析
PCA:PCA是一种分析、简化数据集的技术
目的:是数据维数压缩,尽可能降低原数据的维数(复杂度),损失少量信息。
作用:可以削减回归分析或者聚类分析中特征的数量。
高维数据简化成一维

特征选择与主成分分析的比较?
维度大用主成分分析

数据类型:
离散型数据:由记录着不同类别个体的数目所得到的数据,称为计数数据,所有这些数据全部都是整数,而且不能再细分,也不能进一步提高他们的精确度。
连续性数据:变量可以再某个范围内取任一数,即变量的取值可以是连续的,如长度、时间、质量值等,这一类数据通常是非整数,含有小数部分。

数据类型的不同对应不同的机器学习算法
**监督学习(预测)**有特征值、目标值
分类 K-近邻算法、贝叶斯分类、决策树与随机森林、逻辑回归、神经网络
回归 线性回归、岭回归
无监督学习:只有特征值
聚类 K-Means

分类:目标值离散型数据
回归:目标值连续型数据

机器学习开发流程:
根据数据类型划分应用种类,建立模型
1、明确原始数据做什么
2、数据的基本处理(缺失值、合并表等)
3、特征工程(对特征进行处理)
4、找到合适的算法进行预测
5、模型评估
模型:算法+数据

scikit-learn数据集API介绍
sklearn.datasets
加载获取流行数据集
datasets.load_()
获取小规模数据集,数据包含在datasets里
datasets.fetch_
(data_home = None)
获取大规模数据集,需要从网络上下载,函数的第一个参数是data_home,表示数据集下载的目录,默认是~/scikit_learn——data/
在这里插入图片描述
数据集进行分割
sklearn.model_selection.train_test_split(*arrays,**options)
x:数据集的特征值
y:数据集的标签值
test_size:测试集的大小,一般为float
random_state:随机数种子,不同的种子会造成不同的随机采样结果。相同的种子采样结果相同
return:训练集特征值,测试集特征值,训练标签,测试标签(默认随机取)
在这里插入图片描述
在这里插入图片描述
转换器与预估器
转换器:实现特征工程的API
fit_transform():输入数据直接转换
fit():输入数据,但不转换
transform():进行数据转换
在这里插入图片描述
在这里插入图片描述

from sklearn.model_selection import GridSearchCV
parm = {"n_neighbors":[3,5,10]}
gc = GridSearchCV(knn,param_grid=param,cv = 10)
gc.fit(x_train,y_train)
print("测试集准确率:",gc.score(x_test,y_test))
print("交叉验证中最好的结果",gc.best_score_)
print("最好的模型",gc.best_estimator_)
print("每个超参数每次交叉验证的结果",gc.cv_results_)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值