机器学习Python_学习_基础理论

目录

1 机器学习概述

2 特征工程 

2.1特征提取

2.2特征预处理

2.3特征降维

2.4主成分分析

2.5总结

3分类算法

3.1 KNN算法

3.2 交叉验证和超参数搜索

3.3 朴素贝叶斯算法

3.4 决策树分类器

3.5 随机森林分类器

4 回归和聚类

4.1 线性回归

4.2岭回归

4.3 逻辑回归和二分类

4.4无监督学习---K-means算法


1 机器学习概述

 步骤:

获取数据,数据处理,特征工程,机器学习算法训练---模型,模型评估(若不满足,则回到步骤2)

2 特征工程 

常用数据集:

from sklearn.datasets import load_iris, fetch_20newsgroups

返回值:data     特征值

              target     目标值

              feature_names    特征名

              target_names      目标名

数据集划分:

sklearn.model_selection.train_split(arrays, *options)

参数:  x     特征值

              y     目标值

              test_size 测试机大小

              random_state 随机数种子,相同的随机数种子保证采样相同

返回值:训练集特征值,测试集特征值,训练集特征值,测试集目标值

2.1特征提取

sklearn.feature_extraction.DictVectorizer(space=True)   # 字典特征提取

参数:  space稀疏矩阵

方法:  fit_transform(x)

              get_feature_names()

sklearn.feature_extraction.text.CountVectorizer(stop_words=[])   文本特征提取

方法:  fit_transform(x)

              get_feature_names()

注:中文分词,利用jieba模块,调用jieba.cut()函数

sklearn.feature_extraction.text.TfidfVectorizer(stop_words=None)     文本特征提取

方法:  fit_transform(x)

              get_feature_names()

2.2特征预处理

sklearn.preprocessing.StandardScaler()        标准化

方法:  fit_transform(x)

返回值:转换后的形状相同的array

2.3特征降维

sklearn.feature_selection.VarianceThreshold(threshold=0.0)   低方差特征过滤

方法:  fit_transform(x)

scipy.stats.pearsonr(X,Y)         相关系数

返回值:(相关系数,p_value)

2.4主成分分析

sklearn.decomposition.PCA(n_components=None)  

参数:n_components       整数      减少到多少特征值

                                          小数      表示保留多少百分比

方法:  fit_transform(x)

2.5总结

特征工程步骤:

  1. 实例化(获得一个转换器类)
  2. 调用fit_transform()

fit_transform()构成:

       fit()  计算每一列平均数、标准差

       transform()  (X-mean)/std进行最终的转换

3分类算法

概念:转换器(transfer)、估计器(estimator)

3.1 KNN算法

sklearn.neighbors.KNeighborsClassifier(n_neighbors=5, algorithm=’auto’)

特点:适用于少量数据

参数:  n_neighbors 为int,可选(默认为5);即K值,邻居数

              algorithm:{‘auto’,’ball_tree’,’kd_tree’,’brute’}  算法选择

方法:fit(X,Y)

3.2 交叉验证和超参数搜索

sklearn.model_selection.GridSearchCV(estimator, param_grid=None, cv=None)

功能:对估计器中的指定参数进行详尽的搜索

参数:  estimator  估计器对象

              param_gird  估计器参数(为dict) 如 {‘n_neighbors’:[1,3,5]}

              cv  指定几折交叉验证

返回值:模型

方法:  fit(X,Y)  输入训练数据

              score()  准确率

属性:  best_params_  最佳参数

              best_score_  最佳结果

              best_estimator_  最佳估计器

              cv_results_  交叉验证结果

3.3 朴素贝叶斯算法

sklearn.naive_bayes.MultinomialNB(alpha=1.0)

作用:用于样本概率值为零的情况,即防止分类概率为零

特点:适用于文本分类

参数:  alpha  拉普拉斯平滑系数

方法:  fit(X,Y)

3.4 决策树分类器

sklearn.tree.DecisionTreeClassifier (criterion=’gini’, max_depth=None, random_state=None)

作用:用于决策,(选择信息增益最大的参数)

特点:可视化、解释能力强

参数:  criterion  决策树划分依据

              max_depth  树的深度

              random_state  随机数种子

决策树可视化:

sklearn.tree.export_grapyviz(estimator, out_file=’tree.dot’, feature_names=[‘’, ‘’])

3.5 随机森林分类器

sklearn.ensemble.RandomForestClassifier(n_estimators=10, criterion=’gini’,

max_depth=None, bootstrap=true, random_state=None,

       min_samples_split=2)

特点:适用于高维度特征,大数据

参数:  n_estimators  为int,森林的森林数量

              criterion  为string,分割特征的测量方法

              max_depth  树的最大深度

              bootstrap  是否使用放回抽样

              min_samples_split  节点划分最少样本数

min_samples_leaf  叶子节点最少样本数

上述超参数:n_estimators, max_depth, min_samples_split,  min_samples_leaf

4 回归和聚类

注意:本章模型调用都是:        #除了K-means算法

       fit(X, Y)

4.1 线性回归

(1) 正规方程

sklearn.linear_model.LinearRegression(fit_intercept=True)

参数: fit_intercept  是否计算偏置

属性:  coef_  回归系数

              intercept_  偏置

(2) 梯度下降

sklearn.linear_model.SGDRegressor(loss=’squared_loss’, fit_intercept=True,

learning_rate=’invscaling’, eta0=0.01)

参数:  loss  损失类型,squared_loss:普通最小二乘法

              fit_intercept  是否计算偏置

              learning_rate  学习率填充

                     ‘invscaling’  为eta=eta0/pow(t, power_t)

                     ‘optimal’  为eta=1.0/(alpha*(t+t0))

                     ‘constant’  为eta=eta0

              eta0  最初的学习率,eta 学习率

属性:  coef_  回归系数

              intercept_  偏置

(3) 模型评估

均方误差评估:

sklearn.metrics.mean_squared_error(y_true, y_pred)

参数:  y_true  真实值

              y_pred  预测值

返回值: 均方误差的结果,浮点数表示

4.2岭回归

欠拟合 原因:原始数据特征过少

              办法:增加特征数量

过拟合  原因:原始数据特征过多

              办法:L2正则化,即:岭回归

岭回归,(L2正则化的线性回归)

sklearn.linear_model.Ridge(alpha=1.0, fit_intercept=True, solver=’auto’,

                                   normalize=Flase)

参数:  alpha 正则化力度,取值0~1,1~10

              solver  根据数据自动选择优化方法,可选’sag’ 随机梯度下降

              normalize  数据是否进行标准化

                                   若选False,则之前需要特征标准化

属性:  coef_  回归系数

              intercept_  回归偏置

4.3 逻辑回归和二分类

逻辑回归,解决二分类的利器

sklearn.linear_model.LogisticRegression(solver=’liblinear’, penalty=’L2’, c=1.0)

参数:  solver  优化的求解方法,可选sag

              penalty  正则化种类

              c  正则化力度

属性:  coef_  回归系数

              intercept_  回归偏置

模型评估:

(1) 精确度和召回率

sklearn.metrics.classification_report(y_true, y_pred, labels=[], target_names=None)

参数:  y_true  真实目标值

              y_pred  估计器预测目标值

              labels  指定类别对应的数字

target_names  目标类别名称

返回值:每个类别的精确度、召回率(重要)

(2)AUC指标

sklearn.metrics.roc_auc_score(y_true, y_score)

特点:最小值为0.5,最大值为1,越大越好。AUC只能评估二分类

参数:  y_true  每个样本中的真实类别,必须为0(反例)或1(正例)标记

              y_score  预测得分

返回值:AUC指标

4.4无监督学习---K-means算法

sklearn.cluster.KMeans(n_clusters=8, init=’k-means++’)

特点:多次迭代算法

参数:  n_clusters  开始聚类中心的数量,即K值

              init 初始化方法

属性:  labels  默认的标记类型

方法:  fit(X)

模型评估:
轮廓系数,取值[-1,1],越大越好

sklearn.metrics.silhouette_score(X, labels)

参数:  X  特征值

              labels  被聚类标记的目标值

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值