Technology sharing

Python28-11 catBoost cliuos boosting algorithmus

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

picturam

CatBoost (Categorica Boosting) machina est algorithmus discendi in clivo boosting evoluta Yandex (comitas interretialis Russica, cuius quaero engine plus quam 60% mercatus in Russia participes habuit et etiam aliis interretialibus productis et officiis praebet). CatBoost praecipue est bonum in notis categorica tractandis et efficaciter vitare superflua et notitias difficultates lacus. Nomen plenum CatBoost est "Categorica Boosting". Melius praestare disponitur cum notitia processus categoricae comprehendens magnum numerum notarum.

CatBoost Features

  1. Processus categorica features: CatBoost directe procedere potest notas categoricas sine additione translitterandi (ut unum candens modum translitterandi).

  2. Vitare overfitting: CatBoost novam induit methodum processus categoriae notarum, quae efficaciter superfitting minuit.

  3. Efficientia: CatBoost bene praestat in utraque disciplina celeritatem et celeritatem praedictionis.

  4. Sustinet CPU et GPU disciplina: CatBoost currere potest in CPU vel GPU uti ad exercitationem acceleratam.

  5. Automatice tractamus absentis values: CatBoost statim tractare potest valores absentis sine gradibus accessionibus additis.

Core principia CatBoost

Core principium CatBoost in gradiente boosting decisionis arbore (GBDT) fundatur, sed in categorica lineamentis expediendis et in overfitting vitando est amet. Hic sunt quaedam puncta technica cardinis:

  1. Genus pluma processus

    • CatBoost methodum vocatam "medium modum translitterandi" inducit ad novas notas computandas secundum medium praedicamentorum.

    • Utens artificio quod "scopum modum translitterandi" dicitur, periculum notitiarum lacus minuitur utendo mediocris ipsius target valoris cum categoricas lineas in notas numerales convertens.

    • Per processum disciplinae, notitia statisticarum informationum utendo discursum est ad vitandum modum translitterandi scopo variabilis directe.

  2. Iussit Boosting

    • CatBoost notitias ordinate in exercitatione processit ut notitias lacus et overfiting praecaveat.

    • Operam boosting iussit passim commiscens notitias in disciplina et efficit ut exemplar tantum notitias praeteritas certo momento videat et futuras informationes non adhibeat ad decisiones faciendas.

  3. Computational optimization

    • CatBoost accelerat plumam calculi processus per precomputationem et caching.

    • Sustinet CPU et GPU disciplinam et bene facere potest in notitia magnarum copiarum.

Basic usus CatBoost

Hoc est praecipuum exemplum utendi CatBoost pro munere classificationis. Auto MPG (Miles Per Gallon) data copia utimur, quod est processus problematum classicarum notarum quae vulgo adhibentur in analysi machinae discendi et statistica. Haec dataset refert efficientiam fuel (i.e. milia passuum per peruro) diversorum carrum exemplorum necnon variae notae notae aliae cognatae.

Notae dataset:

  • mpg: Milia per gallon (scopum variabile).

  • cylindri: numerus cylindrorum indicans numerum cylindrorum in machina.

  • obsessio: Engine obsessio (pollices cubicae).

  • horsepower: Engine power (horsepower).

  • pondus: vehiculum pondo librarum.

  • acceleratio: acceleratio temporis ab 0 ad 60 mph (secunda).

  • model_year: vehiculum productionis anni.

  • originis: vehiculum originis (1=United, 2=Europe, 3=Iaponia).

Primis ordinibus emissi sunt;

  1.     mpg  cylinders  displacement  horsepower  weight  acceleration  model_year  origin
  2. 0  18.0          8         307.0       130.0  3504.0          12.0          70       1
  3. 1  15.0          8         350.0       165.0  3693.0          11.5          70       1
  4. 2  18.0          8         318.0       150.0  3436.0          11.0          70       1
  5. 3  16.0          8         304.0       150.0  3433.0          12.0          70       1
  6. 4  17.0          8         302.0       140.0  3449.0          10.5          70       1

Exemplum codicis:

  1. import pandas as pd  # 导入Pandas库,用于数据处理
  2. import numpy as np  # 导入Numpy库,用于数值计算
  3. from sklearn.model_selection import train_test_split  # 从sklearn库导入train_test_split,用于划分数据集
  4. from sklearn.metrics import mean_squared_error, mean_absolute_error  # 导入均方误差和平均绝对误差,用于评估模型性能
  5. from catboost import CatBoostRegressor  # 导入CatBoost库中的CatBoostRegressor,用于回归任务
  6. import matplotlib.pyplot as plt  # 导入Matplotlib库,用于绘图
  7. import seaborn as sns  # 导入Seaborn库,用于绘制统计图
  8. # 设置随机种子以便结果复现
  9. np.random.seed(42)
  10. # 从UCI机器学习库加载Auto MPG数据集
  11. url = "http://archive.ics.uci.edu/ml/machine-learning-databases/auto-mpg/auto-mpg.data"
  12. column_names = ['mpg''cylinders''displacement''horsepower''weight''acceleration''model_year''origin']
  13. data = pd.read_csv(url, names=column_names, na_values='?', comment='t', sep=' ', skipinitialspace=True)
  14. # 查看数据集的前几行
  15. print(data.head())
  16. # 处理缺失值
  17. data = data.dropna()
  18. # 特征和目标变量
  19. = data.drop('mpg', axis=1)  # 特征变量
  20. = data['mpg']  # 目标变量
  21. # 将类别特征转换为字符串类型(CatBoost可以直接处理类别特征)
  22. X['cylinders'= X['cylinders'].astype(str)
  23. X['model_year'= X['model_year'].astype(str)
  24. X['origin'= X['origin'].astype(str)
  25. # 将数据集划分为训练集和测试集
  26. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2random_state=42)
  27. # 定义CatBoost回归器
  28. model = CatBoostRegressor(
  29.     iterations=1000,  # 迭代次数
  30.     learning_rate=0.1,  # 学习率
  31.     depth=6,  # 决策树深度
  32.     loss_function='RMSE',  # 损失函数
  33.     verbose=100  # 输出训练过程信息
  34. )
  35. # 训练模型
  36. model.fit(X_train, y_train, eval_set=(X_test, y_test), early_stopping_rounds=50)
  37. # 进行预测
  38. y_pred = model.predict(X_test)
  39. # 评估模型性能
  40. mse = mean_squared_error(y_test, y_pred)  # 计算均方误差
  41. mae = mean_absolute_error(y_test, y_pred)  # 计算平均绝对误差
  42. # 打印模型的评估结果
  43. print(f'Mean Squared Error (MSE): {mse:.4f}')
  44. print(f'Mean Absolute Error (MAE): {mae:.4f}')
  45. # 绘制真实值与预测值的对比图
  46. plt.figure(figsize=(106))
  47. plt.scatter(y_test, y_pred, alpha=0.5)  # 绘制散点图
  48. plt.plot([y_test.min(), y_test.max()], [y_test.min(), y_test.max()], '--k')  # 绘制对角线
  49. plt.xlabel('True Values')  # X轴标签
  50. plt.ylabel('Predictions')  # Y轴标签
  51. plt.title('True Values vs Predictions')  # 图标题
  52. plt.show()
  53. # 特征重要性可视化
  54. feature_importances = model.get_feature_importance()  # 获取特征重要性
  55. feature_names = X.columns  # 获取特征名称
  56. plt.figure(figsize=(106))
  57. sns.barplot(x=feature_importances, y=feature_names)  # 绘制特征重要性条形图
  58. plt.title('Feature Importances')  # 图标题
  59. plt.show()
  60. # 输出
  61. '''
  62. mpg  cylinders  displacement  horsepower  weight  acceleration  
  63. 0  18.0          8         307.0       130.0  3504.0          12.0   
  64. 1  15.0          8         350.0       165.0  3693.0          11.5   
  65. 2  18.0          8         318.0       150.0  3436.0          11.0   
  66. 3  16.0          8         304.0       150.0  3433.0          12.0   
  67. 4  17.0          8         302.0       140.0  3449.0          10.5   
  68.    model_year  origin  
  69. 0          70       1  
  70. 1          70       1  
  71. 2          70       1  
  72. 3          70       1  
  73. 4          70       1  
  74. 0: learn: 7.3598113 test: 6.6405869 best: 6.6405869 (0) total: 1.7ms remaining: 1.69s
  75. 100: learn: 1.5990203 test: 2.3207830 best: 2.3207666 (94) total: 132ms remaining: 1.17s
  76. 200: learn: 1.0613606 test: 2.2319632 best: 2.2284239 (183) total: 272ms remaining: 1.08s
  77. Stopped by overfitting detector  (50 iterations wait)
  78. bestTest = 2.21453232
  79. bestIteration = 238
  80. Shrink model to first 239 iterations.
  81. Mean Squared Error (MSE): 4.9042
  82. Mean Absolute Error (MAE): 1.6381
  83. <Figure size 1000x600 with 1 Axes>
  84. <Figure size 1000x600 with 1 Axes>
  85. '''

Quadratus error medium (MSE) : Error quadratus medium, qui significat medium quadrati differentiae inter praedictum valorem et ipsum valorem. Quo minor valor, exemplar effectus melior, hic valor MSE 4.9042 est.

Absolutus error medium (MAE) : Errorem medium absolutum, qui significat mediocris differentiam absolutam inter praedictum valorem et ipsum valorem. Quo minor valor, exemplar effectus melior, hic valor MAE est 1.6381.

picturam

  1. Dispergat insidias : unumquodque punctum in figura exhibet specimen specimen. Abscissa verum valorem specimen (MPG) repraesentat, et ordinatim valorem praedictum exemplar repraesentat (MPG).

  2. diametro: Linea nigra punctata in figura est linea 45-gradus diagonalis, quae praesagium eventum sub condicionibus idealibus repraesentat, id est, praedictus valor veri pretii aequalis est.

  3. Distributio punctorum:

    • prope diametrum: praedictum valorem exemplar indicat ipsum verum valorem proximum esse, et vaticinium accurate.

    • discedite ab diametro: magnum intervallum inter praedictum valorem et rem indicat, et praedictum inaccuratum est.

Ex punctis in figura, videre potes pleraque puncta in diametro coacta, quae indicat exemplar bonum praedictionis effectum habere. Sed sunt etiam quaedam puncta quae procul absunt a diametro, id est demonstrans quaedam distantia inter praedicta bona horum exemplarium ac veras hiatus est.

picturam

  1. Bar chart : Singula vectis momentum plumae in exemplari repraesentat. Quo diutius talea, eo maior collatio plumae ad exemplar praedictionis.

  2. Pluma nomen: Enumerat nomina omnium lineamentorum in Y-axis.

  3. Pluma momenti valorem: momentum relativum ostendit valorem uniuscuiusque plumae in X-axis.

Ut ex pictura videri potest;

  1. model_year: Maxime inter omnes lineamenta, significans annum productionis autocinetorum validam ictum in efficientia praedicta cibus habere.

  2. pondus: Pondus autocineti est secunda notae praecipuae et etiam momenti vim habet in esca efficacia.

  3. obsessioethorsepower: Dispositio et potestas machinae efficaciam cibus insigniter conferunt.

In exemplo utimur CatBoost ad processum dataset Auto MPG, cuius praecipuum propositum est exemplar regressionis aedificare ut efficaciam currus cibus praedicet (i.e., milia passuum per peruro, MPG).

Superius contentum ex interreti recapitulatum est. Si utile est, deinceps te vide.