一、转换器和估计器

1.1.1sklearn转换器    ——特征工程的父类

1.实例化(实例化的是一个转换器类(transforer))

2.调用fit_transform(对于文档建立分类词频矩阵,不能同时调用)

标准化:

           (x-mean)/std

              fit_transform()

                       fit()               计算  每一列的平均值,标准差

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

1.1.2估计器(estimator)

1. 实例化一个estimator

 2. estimator.fit(x_train,y_train)  计算

 3. 模型评估:

         1) 直接比对真实值和预测值

            y_preidct = estimator.predict(x_test)

            y_test == y_predict

          2) 计算准确率

             accuray = estimator.score(x_test,y_test)
二、k-近邻算法

1.K-近邻算法(KNN)原理

这个算法是机器学习中一个比较经典的算法。

定义:

如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。

问题:

 k值取得过小,容易受到异常点的影响

 k值取得过大,样本不均衡的影响

进行无量纲化,使不同规格的数据转换到统一规格

无量钢化处理(采用标准化)归一化容易受到异常值影响

案例一:鸢尾花种类预测

流程:获取数据--数据集划分--特征工程(标准化)--KNN预估器流程--模型评估

form sklearn.datasets import load_iris
form sklearn.model_selection import train_test_split
def knn_iris():
    """
    用KNN算法对鸢尾花进行分类
    :return:
    # 1)获取数据
    iris = load_iris()
    # 2)划分数据集
    x_train,x_test,y_train,y_test = train_test_split(iris.data,iris.target,random_state=6)
    # 3)特征工程 :标准化
    transfer = StandarScaler()
    x_train = transfer.fit_transform(x_train)
    x_text = transfer.transform(x_test)
    # 4)KNN算法评估器
    estimator = KNeighborsClassifier(n_neighbors=3)
    estimator.fit(x_train,y_train)
    # 5)模型评估
    # 方法一:直接比对真实值和预测值
    y_predict = estimator.predict(x_test)
    print("y_predict:\n",y_predict)
    print("直接比对真实值和预测值:\n",y_test == y_predict)

    # 方法二:计算准确率
    score = estimator.score(x_test,y_test)
    print("准确率为:\n",score)
    return None
if __name__ =="__main__":
    knn_iris()
    

总结

优点:简单,易于理解,易于实现,无需训练

缺点:懒惰算法,对测试样本分类时的计算量大,内存开销大

           必须使用指定k值,k值选择不当则分类精度不能保证

使用场景:小数据场景,几千-几万样本,具体场景具体业务去测试

三、模型选择与调优


3.1 交叉验证定义


交叉验证:将拿到的训练数据,分为训练和验证集。以下图为例:将数据分为4份,其中一份作为验证集,然后经过4次(组)的测试,每次都更换不同的验证集。即得到4组模型的结果,取平均值作为最终结果,又称4折交叉验证。

3.2分析

3.3.4 案例:预测Facebook签到位置


流程分析:

1)获取数据

 2)数据处理

       目的:

       特征值 x

       目标值  y 

                    a.缩小数据范围

                                 2 < x < 2.5

                                 1.0 < y <1.5

                    b.time 年月日是分秒

                    c.过滤签到次数少的地点

 3)特征工程:标准化

 4)KNN算法预估流程

 5)模型选择与调优

 6)  模型评估
 

更多推荐