机器学习方法与步骤汇总
常见机器学习算法
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
- Correcting(修正)
- Completing(填充)
- Creating(创造)
- 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()
]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)