算法基础与开发流程

# 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()

 

posted @ 2019-05-10 22:49  小白啊小白,Fighting  阅读(3317)  评论(0编辑  收藏  举报