机器学习方法与步骤汇总

常见机器学习算法

from sklearn import svm, tree, linear_model, neighbors, naive_bayes, ensemble, discriminant_analysis, gaussian_process
from xgboost import XGBClassifier

常见函数

from sklearn.preprocessing import OneHotEncoder, LabelEncoder
from sklearn import feature_selection
from sklearn import model_selection
from sklearn import metrics

可视化

import matplotlib as mpl
import matplotlib.pyplot as plt
import matplotlib.pylab as pylab
import seaborn as sns
from pandas.plotting import scatter_matrix

配置可视化

%matplotlib inline
mpl.style.use('ggplot')
sns.set_style('white')
pylab.rcParams['figure.figsize'] = 12,8

加载和查看数据

1.读取数据
2.info()sample()函数快速地进行数据的定性与定量
3.中英文列名替换

3.4 数据清洗-4C原则

Correcting, Completing, Creating, and Converting

  1. Correcting(修正)
  2. Completing(填充)
  3. Creating(创造)
  4. Converting(转换)
    查看空值个数:isnull.sum()
    设置函数计算空值百分比:missing_values_table(df)

`
def missing_values_table(df):

mis_val = df.isnull().sum()
mis_val_percent = 100 * df.isnull().sum() / len(df)
mis_val_table = pd.concat([mis_val, mis_val_percent], axis=1)
mis_val_table_ren_columns = mis_val_table.rename(
columns = {0 : 'Missing Values', 1 : '% of Total Values'})
mis_val_table_ren_columns = mis_val_table_ren_columns[
    mis_val_table_ren_columns.iloc[:,1] != 0].sort_values(
'% of Total Values', ascending=False).round(1)
print ("Your selected dataframe has " + str(df.shape[1]) + " columns.\n"      
    "There are " + str(mis_val_table_ren_columns.shape[0]) +
        " columns that have missing values.")
return mis_val_table_ren_columns

`

利用中位数,总数等进行填充并查看特征数量

类型变量编码

划分数据集和测试集
将部分数据标签化

***探索性分析EDA(Exploratory Data Analysis)

4.1 类散变量与目标变量的相关性(boxplot)

4.2 数值变量分箱和直方图分布(boxplot)

4.3 离散变量的统计树状图(boxplot,boxplot)

4.4 不同变量的影响占比比较(violinplot,boxplot)

具体可以查看该blog https://www.cnblogs.com/my-love-is-python/p/10246428.html

构建和训练模型

MLA = [

#集成方法
ensemble.AdaBoostClassifier(),
# ensemble.BaggingClassifier(),
# ensemble.ExtraTreesClassifier(),
# ensemble.GradientBoostingClassifier(),
# ensemble.RandomForestClassifier(),

#高斯过程
# gaussian_process.GaussianProcessClassifier(),

#非线性分类器
linear_model.LogisticRegressionCV(),
# linear_model.PassiveAggressiveClassifier(),
# linear_model.RidgeClassifierCV(),
linear_model.SGDClassifier(),
linear_model.Perceptron(),

#贝叶斯
# naive_bayes.BernoulliNB(),
naive_bayes.GaussianNB(),

#KNN算法
neighbors.KNeighborsClassifier(),

#支持向量机-SVM
# svm.SVC(probability=True),
# svm.NuSVC(probability=True),
svm.LinearSVC(),

#决策树模型    
tree.DecisionTreeClassifier(),
# tree.ExtraTreeClassifier(),

#奇异值分析
# discriminant_analysis.LinearDiscriminantAnalysis(),
# discriminant_analysis.QuadraticDiscriminantAnalysis(),


#xgboost: http://xgboost.readthedocs.io/en/latest/model.html
XGBClassifier()    
]
posted @   是冰美式诶  阅读(226)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示