zoukankan      html  css  js  c++  java
  • 算法基础与开发流程

    # coding = utf-8
    from sklearn import datasets
    from sklearn.datasets import load_iris
    from sklearn.model_selection import train_test_split
    '''
    算法是核心,数据和计算是基础
    定位:
        1、分析数据
        2、分析业务
        3、应用常见算法进行对比校验
        4、特征工程、调参、优化
    
    数据类型
        离散型数据:由记录不同类别个体的数目所得到的数据,又称计数数据,所以数据全是整数
        连续型数据:变量可以在某一范围内任取一数,即变量的取值是可以连续的,通常是小数
        注意:离散型是区间内不可分,连续型区间内可分
    
    算法分类:
        监督学习:特征值和目标值
            分类(目标值是离散型):K近邻,贝叶斯、决策树、随机森林、逻辑回归、神经网络
            回归(目标值是连续型):线性回归、岭回归
        非监督学习:特征值
            聚类:K均值(K-means)
    
    算法开发流程:
        1、准备数据
            公司本身数据
            kaggle
            购买数据
        2、明确问题(分类还是回归)
            建立算法数据:根据数据类型划分应用种类
        3、数据基本处理
            pd去处理数据(缺失值,合并表....)
        4、特征工程
            特征进行处理(训练集,测试集、验证集)
        5、找寻合适的算法进行分析
            1、估计器选择
            2、调用fit(x_train,y_train)
            3、调用    a)预测:y_predict=predict(x_test)     b)预测的准确率:score(x_test,y_test)
        6、模型的评估  ---->评估不合格,则考虑:1、换算法 2、调参数 3、特征工程再进一步处理
        7、模型实现预测,以API形式提供
    
    
    数据集划分
        训练集:70%     75%(建议)     80%
        测试集:30%     25%(建议)     20%
        验证集
        API: Sklearn.model_selection.train_test_split(*arrays, **options)
            x           数据集的特征值
            y        数据集的标签值
            test_size      测试集的大小,一般为float
            random_state        随机数种子,不同的种子会造成不同的随机
            采样结果。相同的种子采样结果相同。
            return  训练集特征值,测试集特征值,训练标签,测试标签
            (默认随机取)    
        
    Sklearn数据集Api
        datasets.load_*() #获取小规模数据集
        datasets.fetch_*(data_home=None) #获取大的数据集  
        
        小数据集:
            load*和fetch*返回的数据类型datasets.base.Bunch(字典格式)
                data:特征数据数组,是 [n_samples * n_features] 的二维 
                      numpy.ndarray 数组
                target:标签数组,是 n_samples 的一维 numpy.ndarray 数组
                DESCR:数据描述
                feature_names:特征名,新闻数据,手写数字、回归数据集没有
                target_names:标签名,回归数据集没有
        大数据集:
            sklearn.datasets.fetch_20newsgroups(data_home=None,subset=‘train’)
                subset: 'train'或者'test','all',可选,选择要加载的数据集.
                训练集的“训练”,测试集的“测试”,两者的“全部”
        
        清除数据:
            datasets.clear_data_home(data_home=None)
                清除目录下的数据
    
    转换器:
        fit_transform():输入数据直接转换   
        
        fit():输入数据,不做转换,但会计算一些平均值,方差等
        transform():进行数据的转换
        注意:fit_transform = fit + transform
    
    估计器:是一类实现了算法的API
        1、用于分类的估计器:
            sklearn.neighbors    k-近邻算法
            sklearn.naive_bayes      贝叶斯
            sklearn.linear_model.LogisticRegression     逻辑回归
        2、用于回归的估计器:
            sklearn.linear_model.LinearRegression     线性回归
            sklearn.linear_model.Ridge      岭回归 
        
        
    
        
    '''
    
    
    def iris():
        """
        数据切分
        :return:
        """
        li = load_iris()
    
        x_train,x_test,y_train,y_test = train_test_split(li.data,li.target,test_size=0.25)
        print("训练集数据特征值",x_train)
        print("训练集数据目标值", y_train)
    
    
    if __name__ == "__main__":
        iris()
  • 相关阅读:
    Shell Sort
    Insertion Sort
    Notations
    Nakamori Akina
    QuickSort
    Onedrive File Open Problem
    JSON Introduction
    System Call
    进程软中断通信
    Bubble Sort
  • 原文地址:https://www.cnblogs.com/ywjfx/p/10847158.html
Copyright © 2011-2022 走看看