算法基礎與開發流程


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM