目录
1.特征选择
特征选择主要方法:
1.1过滤式
1.2主成份分析
1.3 案例分析
2.机器学习算法分类 开发流程
2.1 数据类型
2.2 机器学习算法分类
监督学习:特征值+目标值
无监督学习:特征值
3.sklearn数据集获取
3.1数据集划分
分类数据集
数据集分割
回归数据集
4.转换器与估计器
4.1转换器 实现特征工程
4.2 估计器 实现算法
1.特征选择
特征选择原因
• 冗余:部分特征的相关度高,容易消耗计算性能 • 噪声:部分特征对预测结果有负影响特征选择主要方法:
主要方法(三大武器):Filter(过滤式):VarianceThreshold
Embedded(嵌入式):正则化、决策树
Wrapper(包裹式)
1.1过滤式
过滤掉低方差特征
sklearn.feature_selection.VarianceThreshold
def var():
'''
特征选择 删除低方差
:return:
'''
var= VarianceThreshold(threshold=0.0)
data =var.fit_transform([[0, 2, 0, 3], [0, 1, 4, 3], [0, 1, 1, 3]])
print(data)
if __name__=='__main__':
var()
第1列第4列被删除(threshlod=0.0)删除方差为0的列
1.2主成份分析 • sklearn. decomposition
PCA:特征数量达到上百的时候,考虑是否需要用PCA,数量减少数据也会改变
高维度数据 特征之间通常是线性相关的
n_components: 小数 0~1 保留信息的百分比 通常 90~95%
整数 减少到的特征数量
def pca():
'''
主成分分析降维
:return:
'''
pca=PCA(n_components=0.9)
data=pca.fit_transform([[2,8,4,5],[6,3,0,8],[5,4,9,1]])
print(data)
if __name__=='__main__':
pca()
1.3 案例分析
用户对物品类别的喜好细分降维
import pandas as pd
from sklearn.decomposition import PCA
#读取csv文件
prior =pd.read_csv('order_products__train.csv')
products = pd.read_csv('products.csv')
orders = pd.read_csv('orders.csv')
aisles = pd.read_csv('aisles.csv')
#合并四张表
_mg=pd.merge(prior,products,on=['product_id','product_id'])
_mg=pd.merge(_mg,orders,on=['order_id','order_id'])
mt=pd.merge(_mg,aisles,on=['aisle_id','aisle_id'])
#用到交叉表(特殊分组工具) 建立 行是用户id,列是其购买的各种类型物品
cross=pd.crosstab(mt['user_id'],mt['aisle'])
#进行主成分分析
pca = PCA(n_components=0.9)
data = pca.fit_transform(cross)
print(data)
2.机器学习算法分类 开发流程
2.1 数据类型
离散型数据:区间内不可分
连续型数据
2.2 机器学习算法分类
监督学习:特征值+目标值
分类(目标值是离散型): k-近邻算法、贝叶斯分类、决策树与随机森林、逻辑回归、神经网络
回归 (目标值是连续型): 线性回归、岭回归
标注 隐马尔可夫模型 (不做要求)
无监督学习:特征值
聚类 k-means
3.sklearn数据集获取
3.1数据集划分
训练数据:构建模型 70% ~80%
测试数据:评估模型 20%~30%
sklearn.model_selection.train_test_split
分类数据集
数据集分割
回归数据集
4.转换器与估计器
4.1转换器 实现特征工程
fit_transform():输入数据直接转化
fit():输入数据但不转化 +transform(): 数据转换
1、实例化 (实例化的是一个转换器类(Transformer))
2、调用fit_transform(对于文档建立分类词频矩阵,不能同时调用)
4.2 估计器 实现算法
1、用于分类的估计器:
• sklearn.neighbors k- 近邻算法 • sklearn.naive_bayes 贝叶斯 • sklearn.linear_model.LogisticRegression 逻辑回归2、用于回归的估计器:
• sklearn.linear_model.LinearRegression 线性回归 • sklearn.linear_model.Ridge 岭回归


