網(wǎng)上有很多關于pos機學習方法,機器學習的知識,也有很多人為大家解答關于pos機學習方法的問題,今天pos機之家(www.dsth100338.com)為大家整理了關于這方面的知識,讓我們一起來看下吧!
本文目錄一覽:
1、pos機學習方法
pos機學習方法
文章目錄
1. 機器學習基本概念2. sklearn機器學習庫3. 評估指標4. 機器學習用到的python庫1. 機器學習基本概念1.1. 常用算法
線性回歸(Linear Regression)邏輯回歸(Logistic Regression)聚類(k-means,DBSCAN)決策樹(Decision Tree)集成算法(Random forest ,AdaBoost,Gradient Boosting)支持向量機(Support Vector Machine)k近鄰(K-Nearest Neighbors)線性判別分析(Linear Discriminant Analysis)樸素貝葉斯(Bayes Theorem)1.2. 基本概念
訓練集:又稱訓練樣例,用來進行訓練,也就是產(chǎn)生模型或者算法的數(shù)據(jù)集測試集:又稱測試樣例,用來專門進行測試已經(jīng)學習好的模型或者算法的數(shù)據(jù)集特征值:屬性的集合,通常用一個向量來表示,附屬于一個實例標記:實例類別的標記(正例與反例或者更多)分類:目標標記為類別型數(shù)據(jù)回歸:目標標記為連續(xù)型數(shù)值有監(jiān)督學習:訓練集有類別標記無監(jiān)督學習:訓練集無類別標記半監(jiān)督學習:訓練集既有有類別標記又有無類別標記1.3. 機器學習步驟框架
把數(shù)據(jù)拆分為訓練集和測試集用訓練集和訓練集的特征向量來訓練算法用學習來的算法運用在測試集上來評估算法(可能要涉及到調(diào)整參數(shù),用驗證集)1.4. 機器學習中分類和預測算法的評估
準確性速度強壯性可規(guī)模性可解釋性1.5. 分類與回歸問題
2. sklearn機器學習庫2.1. 定義
簡介:sklearn是基于python語言的機器學習工具包,是目前做機器學習項目當之無愧的第一工具。 sklearn自帶了大量的數(shù)據(jù)集,可供我們練習各種機器學習算法。 sklearn集成了數(shù)據(jù)預處理、數(shù)據(jù)特征選擇、數(shù)據(jù)特征降維、分類\\回歸\\聚類模型、模型評估等非常全面算法。分類:識別某個對象屬于哪個類別,常用的算法有:SVM(支持向量機),nearest neighbors(最近鄰)、random forest(隨機森林)回歸:預測與對象相關聯(lián)的連續(xù)值屬性,常用算法:SVR(支持向量機), ridge regression(嶺回歸)、Lasso聚類:將相似對象自動分組,常用算法: k-Means、 spectral clustering、mean-shift降維:減少要考慮的隨機變量的數(shù)量,PCA(主成分分析), eature selection(特征選擇)、non-negative matrix factorization(非負矩陣分解)模型選擇:比較,驗證,選擇參數(shù)和模型,常用的模塊有:grid search(網(wǎng)格搜索)、cross validation(交叉驗證)、 metrics(度量)預處理:特征提取和歸一化,把輸入的數(shù)據(jù)轉(zhuǎn)換為機器學習算法可用的數(shù)據(jù)2.2. sklearn數(shù)據(jù)類型
機器學習最終處理的數(shù)據(jù)都是數(shù)字,只不過這些數(shù)據(jù)可能以不同的形態(tài)被呈現(xiàn)出來,如矩陣、文字、圖片、視頻、音頻等。
2.3. sklearn總覽
2.3.1. 數(shù)據(jù)預處理
sklearn.preprocessing函數(shù)功能preprocessing.scale( )標準化preprocessing.MinMaxScaler( )最大最小值標準化preprocessing.StandardScaler( )數(shù)據(jù)標準化preprocessing.MaxAbsScaler( )絕對值最大標準化preprocessing.RobustScaler( )帶離群值數(shù)據(jù)集標準化preprocessing.QuantileTransformer( )使用分位數(shù)信息變換特征preprocessing.PowerTransformer( )使用冪變換執(zhí)行到正態(tài)分布的映射preprocessing.Normalizer( )正則化preprocessing.OrdinalEncoder( )將分類特征轉(zhuǎn)換為分類數(shù)值preprocessing.LabelEncoder( )將分類特征轉(zhuǎn)換為分類數(shù)值preprocessing.MultiLabelBinarizer( )多標簽二值化preprocessing.OneHotEncoder( )獨熱編碼preprocessing.KBinsDiscretizer( )將連續(xù)數(shù)據(jù)離散化preprocessing.FunctionTransformer( )自定義特征處理函數(shù)preprocessing.Binarizer( )特征二值化preprocessing.PolynomialFeatures( )創(chuàng)建多項式特征preprocesssing.Normalizer( )正則化preprocessing.Imputer( )彌補缺失值sklearn.svm函數(shù)介紹svm.OneClassSVM( )無監(jiān)督異常值檢測上述preprocessing類函數(shù)的方法如下:函數(shù)方法介紹xxx.fit( )擬合數(shù)據(jù)xxx.fit_transform( )擬合并轉(zhuǎn)換數(shù)據(jù)xxx.get_params( )獲取函數(shù)參數(shù)xxx.inverse_transform( )逆轉(zhuǎn)換xxx.set_params( )設置參數(shù)xxx.transform( )轉(zhuǎn)換數(shù)據(jù)2.3.2. 數(shù)據(jù)集sklearn.datasets獲取小數(shù)據(jù)集(本地加載):datasets.load_xxx()獲取大數(shù)據(jù)集(在線下載):datasets.fetch_xxx()本地生成數(shù)據(jù)集(本地構造):datasets.make_xxx()數(shù)據(jù)集介紹load_iris( )鳶尾花數(shù)據(jù)集:3類、4個特征、150個樣本load_boston( )波斯頓房價數(shù)據(jù)集:13個特征、506個樣本load_digits( )手寫數(shù)字集:10類、64個特征、1797個樣本load_breast_cancer( )乳腺癌數(shù)據(jù)集:2類、30個特征、569個樣本load_diabets( )糖尿病數(shù)據(jù)集:10個特征、442個樣本load_wine( )紅酒數(shù)據(jù)集:3類、13個特征、178個樣本load_files( )加載自定義的文本分類數(shù)據(jù)集load_linnerud( )體能訓練數(shù)據(jù)集:3個特征、20個樣本load_sample_image( )加載單個圖像樣本load_svmlight_file( )加載svmlight格式的數(shù)據(jù)make_blobs( )生成多類單標簽數(shù)據(jù)集make_biclusters( )生成雙聚類數(shù)據(jù)集make_checkerboard( )生成棋盤結構數(shù)組,進行雙聚類make_circles( )生成二維二元分類數(shù)據(jù)集make_classification( )生成多類單標簽數(shù)據(jù)集make_friedman1( )生成采用了多項式和正弦變換的數(shù)據(jù)集make_gaussian_quantiles( )生成高斯分布數(shù)據(jù)集make_hastie_10_2( )生成10維度的二元分類數(shù)據(jù)集make_low_rank_matrix( )生成具有鐘形奇異值的低階矩陣make_moons( )生成二維二元分類數(shù)據(jù)集make_multilabel_classification( )生成多類多標簽數(shù)據(jù)集make_regression( )生成回歸任務的數(shù)據(jù)集make_s_curve( )生成S型曲線數(shù)據(jù)集make_sparse_coded_signal( )生成信號作為字典元素的稀疏組合make_sparse_spd_matrix( )生成稀疏堆成的正定矩陣make_sparse_uncorrelated( )使用稀疏的不相關設計生成隨機回歸問題make_spd_matrix( )生成隨機堆成的正定矩陣make_swiss_roll( )生成瑞士卷曲線數(shù)據(jù)集2.3.3. 特征選擇sklean.feature_selection函數(shù)功能feature_selection.SelectKBest( ) feature_selection.chi2 ( )feature_selection.f_regression( ) feature_selection.mutual_info_regression( )選擇K個得分最高的特征feature_selection.VarianceThreshold( )無監(jiān)督特征選擇feature_selection.REF( )遞歸式特征消除feature_selection.REFCV( )遞歸式特征消除交叉驗證法feature_selection.SelectFromModel( )特征選擇2.3.4. 特征降維sklearn.decomposition函數(shù)功能decomposition.PCA( )主成分分析decomposition.KernelPCA( )核主成分分析decomposition.IncrementalPCA( )增量主成分分析decomposition.MiniBatchsparsePCA( )小批量稀疏主成分分析decomposition.SparsePCA( )稀疏主成分分析decomposition.FactorAnalysis( )因子分析decomposition.TruncatedSVD( )截斷的奇異值分解decomposition.FastICA( )獨立成分分析的快速算法decomposition.DictionaryLearning( )字典學習decomposition.MiniBatchDictonaryLearning( )小批量字典學習decomposition.dict_learning( )字典學習用于矩陣分解decomposition.dict_learning_online( )在線字典學習用于矩陣分解decomposition.LatentDirichletAllocation( )在線變分貝葉斯算法的隱含迪利克雷分布decomposition.NMF( )非負矩陣分解decomposition.SparseCoder( )稀疏編碼sklearn.manifold函數(shù)功能manifold.LocallyLinearEmbedding( )局部非線性嵌入manifold.Isomap( )流形學習manifold.MDS( )多維標度法manifold.t-SNE( )t分布隨機鄰域嵌入manifold.SpectralEmbedding( )頻譜嵌入非線性降維2.3.5. 模型構建(1)分類模型sklearn.tree函數(shù)功能tree.DecisionTreeClassifier()決策樹sklearn.ensemble函數(shù)功能ensemble.BaggingClassifier()裝袋法集成學習ensemble.AdaBoostClassifier( )提升法集成學習ensemble.RandomForestClassifier( )隨機森林分類ensemble.ExtraTreesClassifier( )極限隨機樹分類ensemble.RandomTreesEmbedding( )嵌入式完全隨機樹ensemble.GradientBoostingClassifier( )梯度提升樹ensemble.VotingClassifier( )投票分類法sklearn.linear_model函數(shù)功能linear_model.LogisticRegression( )邏輯回歸linear_model.Perceptron( )線性模型感知機linear_model.SGDClassifier( )具有SGD訓練的線性分類器linear_model.PassiveAggressiveClassifier( )增量學習分類器sklearn.svm函數(shù)功能svm.SVC( )支持向量機分類svm.NuSVC( )Nu支持向量分類svm.LinearSVC( )線性支持向量分類sklearn.neighbors函數(shù)功能neighbors.NearestNeighbors( )無監(jiān)督學習臨近搜索neighbors.NearestCentroid( )最近質(zhì)心分類器neighbors.KNeighborsClassifier()K近鄰分類器neighbors.KDTree( )KD樹搜索最近鄰neighbors.KNeighborsTransformer( )數(shù)據(jù)轉(zhuǎn)換為K個最近鄰點的加權圖sklearn.discriminant_analysis函數(shù)功能discriminant_analysis.LinearDiscriminantAnalysis( )線性判別分析discriminant_analysis.QuadraticDiscriminantAnalysis( )二次判別分析sklearn.gaussian_process函數(shù)功能gaussian_process.GaussianProcessClassifier( )高斯過程分類sklearn.naive_bayes函數(shù)功能naive_bayes.GaussianNB( )樸素貝葉斯naive_bayes.MultinomialNB( )多項式樸素貝葉斯naive_bayes.BernoulliNB( )伯努利樸素貝葉斯(2)回歸模型sklearn.tree函數(shù)功能tree.DecisionTreeRegress( )回歸決策樹tree.ExtraTreeRegressor( )極限回歸樹sklearn.ensemble函數(shù)功能ensemble.GradientBoostingRegressor( )梯度提升法回歸ensemble.AdaBoostRegressor( )提升法回歸ensemble.BaggingRegressor( )裝袋法回歸ensemble.ExtraTreeRegressor( )極限樹回歸ensemble.RandomForestRegressor( )隨機森林回歸sklearn.linear_model函數(shù)功能linear_model.LinearRegression( )線性回歸linear_model.Ridge( )嶺回歸linear_model.Lasso( )經(jīng)L1訓練后的正則化器linear_model.ElasticNet( )彈性網(wǎng)絡linear_model.MultiTaskLasso( )多任務Lassolinear_model.MultiTaskElasticNet( )多任務彈性網(wǎng)絡linear_model.Lars( )最小角回歸linear_model.OrthogonalMatchingPursuit( )正交匹配追蹤模型linear_model.BayesianRidge( )貝葉斯嶺回歸linear_model.ARDRegression( )貝葉斯ADA回歸linear_model.SGDRegressor( )隨機梯度下降回歸linear_model.PassiveAggressiveRegressor( )增量學習回歸linear_model.HuberRegression( )Huber回歸sklearn.svm函數(shù)功能svm.SVR( )支持向量機回歸svm.NuSVR( )Nu支持向量回歸svm.LinearSVR( )線性支持向量回歸sklearn.neighbors函數(shù)功能neighbors.KNeighborsRegressor( )K近鄰回歸neighbors.RadiusNeighborsRegressor( )基于半徑的近鄰回歸sklearn.kernel_ridge函數(shù)功能kernel_ridge.KernelRidge( )內(nèi)核嶺回歸sklearn.gaussian_process函數(shù)功能gaussian_process.GaussianProcessRegressor( )高斯過程回歸sklearn.cross_decomposition函數(shù)功能cross_decomposition.PLSRegression( )偏最小二乘回歸(3)聚類模型sklearn.cluster函數(shù)功能cluster.DBSCAN( )基于密度的聚類cluster.GaussianMixtureModel( )高斯混合模型cluster.AffinityPropagation( )吸引力傳播聚類cluster.AgglomerativeClustering( )層次聚類cluster.Birch( )利用層次方法的平衡迭代聚類cluster.KMeans( )K均值聚類cluster.MiniBatchKMeans( )小批量K均值聚類cluster.MeanShift( )平均移位聚類cluster.OPTICS( )基于點排序來識別聚類結構cluster.SpectralClustering( )譜聚類cluster.Biclustering( )雙聚類cluster.ward_tree( )集群病房樹模型方法方法功能xxx.fit( )模型訓練xxx.get_params( )獲取模型參數(shù)xxx.predict( )預測新輸入數(shù)據(jù)xxx.score( )評估模型分類/回歸/聚類模型xxx.set_params( )設置模型參數(shù)2.3.6. 模型評估分類模型評估函數(shù)功能metrics.accuracy_score( )準確率metrics.average_precision_score( )平均準確率metrics.log_loss( )對數(shù)損失metrics.confusion_matrix( )混淆矩陣metrics.classification_report( )分類模型評估報告:準確率、召回率、F1-scoremetrics.roc_curve( )受試者工作特性曲線metrics.auc( )ROC曲線下面積metrics.roc_auc_score( )AUC值回歸模型評估函數(shù)功能metrics.mean_squared_error( )平均決定誤差metrics.median_absolute_error( )中值絕對誤差metrics.r2_score( )決定系數(shù)聚類模型評估函數(shù)功能metrics.adjusted_rand_score( )隨機蘭德調(diào)整指數(shù)metrics.silhouette_score( )輪廓系數(shù)2.3.7. 模型優(yōu)化函數(shù)
功能
model_selection.cross_val_score( )
交叉驗證
model_selection.LeaveOneOut( )
留一法
model_selection.LeavePout( )
留P法交叉驗證
model_selection.GridSearchCV( )
網(wǎng)格搜索
model_selection.RandomizedSearchCV( )
隨機搜索
model_selection.validation_curve( )
驗證曲線
model_selection.learning_curve( )
學習曲線
3. 評估指標3.1. 各種算法的評估指標3.2. 分類任務二分類問題的混淆矩陣:
TP代表正樣本中預測正確的樣本個數(shù);FN代表正樣本中預測錯誤的樣本個數(shù);FP代表負樣本中預測錯誤的樣本個數(shù);TN代表父樣本中預測正確的樣本個數(shù),以下的公式基本都基于混淆矩陣而言。
準確率:準確率表示的是分類正確的比例(所有樣本),但是在樣本不平衡的情況下,并不能作為很好的指標來衡量結果。A c c u r a c y = T P + T N T P + T N + F P + F N Accuracy=\\frac{TP+TN}{TP+TN+FP+FN}Accuracy=TP+TN+FP+FNTP+TN對應sklearn包 :sklearn.metrics.accuracy_score(y_true, y_pred, *, normalize=True, sample_weight=None)參數(shù):參數(shù)說明y_true1d array-like, or label indicator array / sparse matrix 真實標簽。y_pred1d array-like, or label indicator array / sparse matrix 預測標簽,由分類器返回。normalizebool, optional (default=True) 如果為False,則返回正確分類的樣本數(shù)。否則,返回正確分類的樣本的分數(shù)。sample_weightarray-like of shape (n_samples,), default=None 樣本權重。返回值:返回值說明scorefloat 如果normalize == True,則返回正確分類的樣本的分數(shù)(浮點數(shù)),否則返回正確分類的樣本數(shù)(整數(shù))。 最佳性能,在normalize == True時,為1;在normalize == False時,為樣本數(shù)量。精確率(查準率):精確率代表的是預測為正樣本的樣本總體中預測正確的占比(正樣本)。P r e c i s i o n = T P T P + F P Precision=\\frac{TP}{TP+FP}Precision=TP+FPTP對應sklearn包 :sklearn.metrics.precision_score(y_true, y_pred, *, labels=None, pos_label=1, average='binary', sample_weight=None, zero_division='warn')參數(shù):參數(shù)說明y_true1d array-like, or label indicator array / sparse matrix 真實目標值。y_pred1d array-like, or label indicator array / sparse matrix 分類器返回的估計目標。labelslist, optional 當average!='binary’時要包括的一組標簽,如果average是None,則為標簽的順序??梢耘懦龜?shù)據(jù)中存在的標簽,例如,以忽略多數(shù)否定類的方式計算多類平均值,而數(shù)據(jù)中不存在的標簽將導致宏平均值中的0成分。對于多標簽目標,標簽是列索引。 默認情況下,y_true和y_pred中的所有標簽均按排序順序使用。 在版本0.17中進行了更改:針對多類問題改進了參數(shù)標簽。pos_labelstr or int, 1 by default average ='binary’且數(shù)據(jù)為二進制的報告類。如果數(shù)據(jù)是多類或多標簽的,則將被忽略; 設置labels= [pos_label]和average!='binary’將僅報告該標簽的分數(shù)。averagestring, [None|‘binary’ (default)| ‘micro’| ‘macro’| ‘samples’|‘weighted’] 對于多類/多標簽目標,此參數(shù)是必需的。如果為None,則返回每個班級的分數(shù)。否則,將根據(jù)數(shù)據(jù)的平均表現(xiàn)確定類型: - 'binary': 僅報告由pos_label指定的類的結果。僅當目標(y_ {true,pred})為二進制時才適用。 - 'micro': 通過計算真正例、假負例和假正例的總數(shù)來全局計算指標。 - 'macro': 計算每個標簽的指標,并找到其未加權平均值。 沒有考慮標簽不平衡。 - 'weighted': 計算每個標簽的指標,并找到它們受支持的平均權重(每個標簽的真實實例數(shù))。這會更改‘macro’以解決標簽不平衡的問題;這可能導致F-score不在精確度和召回率之間。 - 'samples': 計算每個實例的指標,并找到它們的平均值(僅對不同于accuracy_score的多標簽分類有意義)。sample_weightarray-like of shape (n_samples,), default=None 樣本權重。zero_division“warn”, 0 or 1, default=”warn” 設置零分頻時返回的值。如果設置為“ warn”,則該值為0,但也會發(fā)出警告。返回值:返回值說明precisionfloat (if average is not None) or array of float, shape = [n_unique_labels] 二進制分類中正類的精度,或者多類任務的每個類的精度的加權平均值。召回率(查全率):召回率代表的是實際為正樣本的樣本總體中預測正確的占比。精確度與召回率是一對矛盾的度量,一般來說,精確率高的時候,召回率往往偏低;精確率低的時候,召回率往往偏高。R e c a l l = T P T P + F N Recall=\\frac{TP}{TP+FN}Recall=TP+FNTP對應sklearn包 :sklearn.metrics.recall_score(y_true, y_pred, *, labels=None, pos_label=1, average='binary', sample_weight=None, zero_division='warn')參數(shù):參數(shù)說明y_true1d array-like, or label indicator array / sparse matrix 真實目標值。y_pred1d array-like, or label indicator array / sparse matrix 分類器返回的估計目標。labelslist, optional 當average!='binary’時要包括的一組標簽,如果average是None,則是標簽的順序。可以排除數(shù)據(jù)中存在的標簽,例如,以忽略多數(shù)否定類的方式計算多類平均值,而數(shù)據(jù)中不存在的標簽將導致宏平均值中的0成分。對于多標簽目標,標簽是列索引。 默認情況下,y_true和y_pred中的所有標簽均按排序順序使用。 在版本0.17中進行了更改:針對多類問題改進了參數(shù)標簽。pos_labelstr or int, 1 by default average ='binary’且數(shù)據(jù)為二進制的報告類。如果數(shù)據(jù)是多類或多標簽的,則將被忽略; 設置labels=[pos_label]和average!='binary’將僅報告該標簽的分數(shù)。averagestring, [None|‘binary’ (default)| ‘micro’| ‘macro’| ‘samples’|‘weighted’] 對于多類/多標簽目標,此參數(shù)是必需的。如果為None,則返回每個類的得分。否則,將根據(jù)數(shù)據(jù)的平均表現(xiàn)確定類型: - 'binary': 僅報告由pos_label指定的類的結果。僅當目標(y_ {true,pred})為二進制時才適用。 - 'micro': 通過計算真正例、假負例和假正例的總數(shù)來全局計算度量。 - 'macro': 計算每個標簽的度量,并找到其未加權平均值。 這沒有考慮標簽不平衡。 - 'weighted': 計算每個標簽的度量,并找到它們受支持的平均權重(每個標簽的真實實例數(shù))。這會更改‘macro’以解決標簽不平衡的問題;這可能導致F-score不在精確度和召回率之間。 - 'samples': 計算每個實例的度量,并找到它們的平均值(僅對不同于accuracy_score的多標簽分類有意義)。sample_weightarray-like of shape (n_samples,), default=None 樣本權重。zero_division“warn”, 0 or 1, default=”warn” 設置零分頻時返回的值。如果設置為“ warn”,則該值為0,但也會發(fā)出警告。返回值:返回值說明recallfloat (if average is not None) or array of float, shape = [n_unique_labels] 二進制分類中的正例類的召回率或多類別任務的每個類別的召回率加權平均P-R曲線:以查準率為縱軸,查全率為橫軸,就得到了查準率-查全率曲線,又被稱為P-R曲線。P-R曲線能直觀地顯示出學習器在樣本總體上的查全率、查準率。如下圖,學習器A優(yōu)于學習器C(學習器A的曲線完全包住學習器C),但是學習器A與B很難比較,因為出現(xiàn)了交叉,平衡點(BEP)也就是查準率等于查全率的時候,對應的坐標值,坐標值大的相對優(yōu)一點。但BEP過于簡化,因此常用F1。對應sklearn包 :sklearn.metrics.average_precision_score(y_true, y_score, *, average='macro', pos_label=1, sample_weight=None)參數(shù):參數(shù)說明y_truearray, shape = [n_samples] or [n_samples, n_classes] 真正的二進制標簽或二進制標簽指示符。y_scorearray, shape = [n_samples] or [n_samples, n_classes] 目標分數(shù)可以是肯定類別的概率估計值,置信度值或決策的非閾值度量(如某些分類器上的“ decision_function”所返回)。averagestring, [None, ‘micro’, ‘macro’ (default), ‘samples’, ‘weighted’] 如果為None,則返回每類的得分。否則,將確定對數(shù)據(jù)平均表現(xiàn)的類型: - ‘micro’: 通過將標簽指標矩陣的每個元素都視為標簽來全局計算指標。 - ‘macro’: 計算每個標簽的指標,并找到其未加權平均值。此處沒有考慮標簽不平衡問題。 - ‘weighted’: 計算每個標簽的指標,并找到它們的平均值,然后按支持度(每個標簽的真實實例數(shù))加權。 - ‘samples’: 計算每個實例的指標,并找到它們的平均值。 當y_true為二進制時將被忽略。pos_labelint or str (default=1) 正向類別的標簽。僅適用于二進制y_true。 對于multilabel-indicator y_true,pos_label固定為1。sample_weightarray-like of shape (n_samples,), default=None 樣本權重。返回值:返回值說明average_precisionfloatF值:當需要在精確率與召回率之間進行權衡時,F(xiàn)1曲線同時考慮了兩者,可以作為一種評價指標,它是精確率和召回率的調(diào)和平均數(shù)。當β > 1時,召回率的權重高于精確率,當β < 1時精確率的權重高于召回率,當β = 1時,就變成了F1值。F β = ( 1 + β 2 ) ? P r e c i s i o n ? R e c a l l β 2 ? P r e c i s i o n + R e c a l l F_\\beta=(1+\\beta^2)\\cdot\\frac{Precision \\cdot Recall}{\\beta^2 \\cdot Precision + Recall}Fβ=(1+β2)?β2?Precision+RecallPrecision?RecallF1:F 1 = 2 ? P r e c i s i o n ? R e c a l l P r e c i s i o n + R e c a l l F_1=\\frac{2\\cdot Precision \\cdot Recall}{Precision + Recall}F1=Precision+Recall2?Precision?Recall對應sklearn包 :sklearn.metrics.f1_score(y_true, y_pred, *, labels=None, pos_label=1, average='binary', sample_weight=None, zero_division='warn')參數(shù):參數(shù)說明y_true1d array-like, or label indicator array / sparse matrix 真實目標值。y_pred1d array-like, or label indicator array / sparse matrix 分類器返回的估計目標。labelslist, optional 當average!='binary’時要包括的一組標簽,如果average是None,則是標簽的順序??梢耘懦龜?shù)據(jù)中存在的標簽,例如,以忽略多數(shù)否定類的方式計算多類平均值,而數(shù)據(jù)中不存在的標簽將導致宏平均值中的0成分。對于多標簽目標,標簽是列索引。 默認情況下,y_true和y_pred中的所有標簽均按排序順序使用。 在版本0.17中進行了更改:針對多類問題改進了參數(shù)標簽。pos_labelstr or int, 1 by default average ='binary’且數(shù)據(jù)為二進制的要進行報告的類。如果數(shù)據(jù)是多類或多標簽的,則將被忽略;設置labels=[pos_label]及average!='binary’將僅報告該標簽的得分。averagestring,[None| ‘binary’(default)| ‘micro’| ‘macro’| ‘samples’| ‘weighted’] 對于多類/多標簽目標,此參數(shù)是必需的。如果為None,則返回每個類的得分。否則,將確定數(shù)據(jù)執(zhí)行的平均類型: - 'binary': 僅報告由pos_label指定的類的結果。僅當目標(y_ {true,pred})為二進制時才適用。 - 'micro': 通過計算真正例、假負例和假正例的總數(shù)來全局計算度量。 - 'macro': 計算每個標簽的度量,并找到其未加權平均值。 這沒有考慮標簽不平衡。 - 'weighted': 計算每個標簽的度量,并找到它們受支持的平均權重(每個標簽的真實實例數(shù))。這會更改‘macro’以解決標簽不平衡的問題;這可能導致F-score不在精確度和召回率之間。 - 'samples': 計算每個實例的度量,并找到它們的平均值(僅對不同于accuracy_score的多標簽分類有意義)。sample_weightarray-like of shape (n_samples,), default=None 樣本權重。zero_division“warn”, 0 or 1, default=”warn” 設置除數(shù)為零(即所有預測和標簽均為負)時的返回值。如果設置為“warn”,則該值為0,但也會發(fā)出警告。返回值:返回值說明f1_scorefloat or array of float, shape = [n_unique_labels] 二進制分類中的正例類的F1分數(shù),或者對于多類別任務,每個類別的F1分數(shù)的加權平均值。G值:是精確率與召回率的另一種評價指標,它是精確率和召回率的幾何平均數(shù)。G = P r e c i s i o n ? R e c a l l G=\\sqrt{Precision \\cdot Recall}G=Precision?RecallROC曲線和AUC :當測試集中的正負樣本的分布變化的時候,ROC曲線能夠保持不變,即ROC曲線能夠很好的消除樣本類別不平衡對評估指標產(chǎn)生的影響(把實際中的正樣例與負樣例分開考慮)。ROC曲線與下方坐標軸圍成的面積就是AUC,考慮的是樣本預測的排序質(zhì)量,因此與排序誤差有緊密聯(lián)系,AUC的值應當越大越好。對應sklearn包 (AUC):sklearn.metrics.auc(x, y)參數(shù):參數(shù)說明xarray, shape = [n] x坐標。這些必須是單調(diào)遞增或單調(diào)遞減。yarray, shape = [n] y坐標。返回值:返回值說明aucfloat對應sklearn包(ROC) :sklearn.metrics.roc_curve(y_true, y_score, *, pos_label=None, sample_weight=None, drop_intermediate=True)參數(shù):參數(shù)說明y_truearray, shape = [n_samples] 真正的二進制標簽。 如果標簽既不是{-1,1}也不是{0,1},則應該明確給出pos_label。y_scorearray, shape = [n_samples] 目標分數(shù)可以是正例類的概率估計值,置信度值或決策的非閾值度量(如某些分類器上的“ decision_function”所返回)。pos_labelint or str, default=None 正例類的標簽。當pos_label = None時,如果y_true在{-1,1}或{0,1}中,則pos_label設置為1,否則將引發(fā)錯誤。sample_weightarray-like of shape (n_samples,), default=None 樣本權重。drop_intermediateboolean, optional (default=True) 是否降低一些未達到最佳閾值的閾值,這些閾值不會出現(xiàn)在繪制的ROC曲線上。 這對于創(chuàng)建較淺的ROC曲線很有用。 版本0.17中的新功能:參數(shù)drop_intermediate。返回值:返回值說明fprarray, shape = [>2] 增加假正例率,使得元素i是score >= thresholds[i]預測的假正例率。tprarray, shape = [>2] 增加真正例率,使得元素i是score >= thresholds[i]的預測的真正例率。thresholdsarray, shape = [n_thresholds] 用于計算fpr和tpr的決策函數(shù)的閾值遞減。 thresholds [0]表示沒有實例在預測中,可以任意設置為max(y_score)+ 1。真正率、假正率、真負率、假負率:真正率:在所有實際為正例的樣本中,正確判斷為正例的概率;假正率:在所有實際為負例的樣本中,錯誤判斷為負例的概率;真負率:在所有實際為負例的樣本中,正確判斷為負例的概率;假負率:在所有實際為正例的樣本中,錯誤判斷為正例的概率。T P R = T P T P + F N F P R = F P F P + T N T N R = T N T N + F P F N R = F N F N + T P TPR=\\frac{TP}{TP+FN} \\quad FPR=\\frac{FP}{FP+TN} \\quad TNR=\\frac{TN}{TN+FP} \\quad FNR=\\frac{FN}{FN+TP} \\quadTPR=TP+FNTPFPR=FP+TNFPTNR=TN+FPTNFNR=FN+TPFN對應sklearn包 :sklearn.metrics.confusion_matrix(y_true, y_pred, *, labels=None, sample_weight=None, normalize=None)參數(shù):參數(shù)說明y_truearray-like of shape (n_samples,) 真實目標值。y_predarray-like of shape (n_samples,) 分類器返回的估計目標。labelsarray-like of shape (n_classes), default=None 索引矩陣的標簽列表。可用于重新排序或選擇標簽的子集。如果指定None,則那些在y_true或y_pred中至少出現(xiàn)一次的標簽將按照排序使用。sample_weightarray-like of shape (n_samples,), default=None 樣本權重。 版本0.18中的新功能。normalize{‘true’, ‘pred’, ‘a(chǎn)ll’}, default=None 對真實(行),預測(列)條件或所有總體的混淆矩陣進行歸一化。 如果為None,則不會對混淆矩陣進行歸一化。返回值:返回值說明Cndarray of shape (n_classes, n_classes) 混淆矩陣,其第i行和第j列條目指示真實標簽為第i類且預測標簽為第j類的樣本數(shù)。3.3. 回歸任務均方誤差(MSE)或L2范數(shù)損失:通過計算真實值與預測值的差值的平方和的均值來衡量距離。M S E = 1 m ∑ i = 1 m ( f ( x i ) ? y i ) 2 MSE=\\frac{1}{m} \\sum_{i=1}^{m}{(f(x_i)-y_i)^2}MSE=m1i=1∑m(f(xi)?yi)2對應sklearn包 :
sklearn.metrics.mean_squared_error(y_true, y_pred, *, sample_weight=None, multioutput='uniform_average', squared=True)
參數(shù):
參數(shù)
說明
y_true
array-like of shape (n_samples,) or (n_samples, n_outputs) 真實目標值。
y_pred
array-like of shape (n_samples,) or (n_samples, n_outputs) 預測目標值。
sample_weight
array-like of shape (n_samples,), optional 樣本權重。
multioutput
string in [‘raw_values’, ‘uniform_average’] or array-like of shape (n_outputs) 定義多個輸出值的匯總。類似數(shù)組的值定義了用于平均誤差的權重。 - ‘raw_values’: 如果是多輸出格式的輸入,則返回完整的錯誤集。 - ‘uniform_average’: 所有輸出的誤差均以相同的權重平均。
squared
boolean value, optional (default = True) 如果為True,則返回MSE值;如果為False,則返回RMSE值。
返回值:
返回值
說明
loss
float or ndarray of floats 非負浮點值(最佳值為0.0)或浮點值數(shù)組,每個目標對應一個浮點值。
均方根誤差(RMSE): 通過計算真實值與預測值的差值的平方和的均值的標準差來衡量距離。R M S E = 1 m ∑ i = 1 m ( f ( x i ) ? y i ) 2 RMSE=\\sqrt{ \\frac{1}{m} \\sum_{i=1}^{m}{(f(x_i)-y_i)^2}}RMSE=m1i=1∑m(f(xi)?yi)2平均絕對誤差(MAE)或L1范數(shù)損失: 通過計算預測值和真實值之間的距離的絕對值的均值來衡量距離。M A E = 1 m ∑ i = 1 m ∣ y i ? f ( x i ) ∣ MAE=\\frac{1}{m} \\sum_{i=1}^{m}|{y_i-f(x_i)|}MAE=m1i=1∑m∣yi?f(xi)∣對應sklearn包 :sklearn.metrics.mean_absolute_error(y_true, y_pred, *, sample_weight=None, multioutput='uniform_average')參數(shù):參數(shù)說明y_truearray-like of shape (n_samples,) or (n_samples, n_outputs) 真實目標值。y_predarray-like of shape (n_samples,) or (n_samples, n_outputs) 預測目標值。sample_weightarray-like of shape (n_samples,), optional 樣本權重。multioutputstring in [‘raw_values’, ‘uniform_average’] or array-like of shape (n_outputs) 定義多個輸出值的匯總。類似數(shù)組的值定義了用于平均誤差的權重。 - ‘raw_values’: 如果是多輸出格式的輸入,則返回完整的錯誤集。 - ‘uniform_average’: 所有輸出的誤差均以相同的權重平均。返回值:返回值說明lossfloat or ndarray of floats 如果多輸出為‘raw_values’,則分別為每個輸出返回均值絕對錯誤。如果多輸出是‘uniform_average’或權重的ndarray,則將返回所有輸出錯誤的加權平均值。 MAE輸出為非負浮點。最佳值為0.0。3.4. 無監(jiān)督任務輪廓系數(shù):適應于實際類別信息未知的情況。對于單個樣本,設a是與它同類別中其它樣本的 平均距離,b是與它距離最近不同類別中樣本的平均距離,定義為:S = b ? a m a x ( a , b ) S=\\frac{b-a}{max(a,b)}S=max(a,b)b?a對應sklearn包 :
sklearn.metrics.silhouette_score(X, labels, *, metric='euclidean', sample_size=None, random_state=None, **kwds)
參數(shù):
參數(shù)
說明
X
array [n_samples_a, n_samples_a] if metric == “precomputed”, or, [n_samples_a, n_features] otherwise 樣本之間的成對距離數(shù)組或特征數(shù)組。
labels
array, shape = [n_samples] 每個樣本的預測標簽。
metric
string, or callable 計算特征陣列中實例之間的距離時使用的度量。如果metric是字符串,則它必須是metrics.pairwise.pairwise_distances允許的選項之一。如果X是距離數(shù)組本身,則使用metric=“precomputed”。
sample_size
int or None 在數(shù)據(jù)的隨機子集上計算輪廓系數(shù)時要使用的樣本大小。如果sample_size為None,則不使用采樣。
random_state
int, RandomState instance or None, optional (default=None) 確定用于選擇樣本子集的隨機數(shù)生成。當sample_size不為None時使用。在多個函數(shù)調(diào)用之間傳遞int以獲得可重復的結果。請參閱詞匯表。
**kwds
optional keyword parameters 任何其他參數(shù)都直接傳遞給距離函數(shù)。如果使用scipy.spatial.distance度量,則參數(shù)仍取決于度量。有關用法示例,請參見scipy文檔。
返回值:
返回值
說明
silhouette
float 所有樣本的平均輪廓系數(shù)。
4. 機器學習用到的python庫4.1. NumpyNumpy:通常用來進行矢量化的計算常用函數(shù):創(chuàng)建數(shù)組
np.array()
用于創(chuàng)建一維或多維數(shù)組
np.arange()
在給定的間隔內(nèi)返回具有一定步長的整數(shù)
np.linspace()
創(chuàng)建一個具有指定間隔的浮點數(shù)的數(shù)組
np.random.randint()
在一個范圍內(nèi)生成n個隨機整數(shù)樣本
np.zeros()
創(chuàng)建一個全部為0的數(shù)組
np.ones()
創(chuàng)建一個全部為1的數(shù)組
np.full()
創(chuàng)建一個單獨值的n維數(shù)組
數(shù)組操作
np.min()
返回數(shù)組中的最小值
np.max()
返回數(shù)組中的最大值
np.mean()
返回數(shù)組的平均數(shù)
np.median()
返回數(shù)組的中位數(shù)
np.np.sort()
對數(shù)組排序
優(yōu)點:numpy的基本對象是ndarray,最大的優(yōu)勢在于用它進行多維數(shù)組的計算,不用寫多重for循環(huán),直接可以進行矢量化的運算封裝了vectorize函數(shù),可以把處理標量的函數(shù)矢量化,極大地提高了計算速度缺點:ndarray中的數(shù)據(jù)類型必須相同,于是有了pandas可以處理不同數(shù)據(jù)類型的數(shù)據(jù)集4.2. PandasPandas: 通常用來處理結構化的數(shù)據(jù)優(yōu)點:數(shù)據(jù)結構Series,理解為一個一維的數(shù)組,只是index名稱可以自己改動。類似于定長的有序字典,有index和value數(shù)據(jù)結構DataFrame,理解為一個二維數(shù)組,索引有兩個維度,可更改。一行一樣本,一列一特征。每一行都可以看作一個樣本,每一列都可以看作一個Series封裝的to_datetime函數(shù)轉(zhuǎn)換日期數(shù)據(jù)類型,支持大多數(shù)的日期格式,而且轉(zhuǎn)換后的datetime類型數(shù)據(jù)支持日期運算4.3. MatplotlibMatplotlib: 用來繪制出直觀的圖表Figure:是指整個圖形,也就是一張畫布,包括了所有的元素,如標題,軸線等;Axes:繪制 2D 圖像的實際區(qū)域,也稱為軸域區(qū),或者繪圖區(qū);Axis:是指圖形的水平軸和垂直軸,包括軸的長度、軸的標簽和軸的刻度等;
xlabel、ylabel: 設置橫軸、縱軸標簽及大小
xticks、yticks: 設置坐標軸刻度的字體大小
plt.legend():添加圖例
plt.scatter():函數(shù)用于生成一個scatter散點圖
plt.plot(x, y, format_string, **kwargs) :繪制函數(shù)曲線(繪制坐標圖)
以上就是關于pos機學習方法,機器學習的知識,后面我們會繼續(xù)為大家整理關于pos機學習方法的知識,希望能夠幫助到大家!
