1.获取数据集-
数据查看
基本信息:data.info()
数据摘要:data.describe() (均值、标准差)
缺失值:data.isnull() .sum()
唯一值: data.nunique()
行列数: data.shape #返回值第一个是行数 第二个是列数
数据类型: data.dtypes
前五行数据:data.head() #参数为前n行数据
2.数据预处理
重复值 1 删除重复行 .drop_duplicates() 2 保留第一次出现的重复行 .duplicated().fist("l列名')
缺失值 .fillna(0) #用0填充缺失值
删除缺失值所在的行 .dropna(subset=("label"),inplace=True)
#参数 axis 默认为0,表示沿行删除
subset 表示按哪些列判断是否有空
how 确定如何处理缺失值 默认为 any 表示 只要一行中有任何缺失就删除改行
异常值 data=data[data['feature']<10]
数据格式转换 .to_datatime(data['data'],format="%d/%m/%Y")
数据转换 .replace({True:1,False:0})
数据合并 .concat([x,y],axis=1)
数据平滑处理
3.划分数据集
4.特征工程:
One-Hot编码 .get_dummies()
文本特征提取 CountVectorizer() TfidfVectorizer()
特征提取:方差过滤 PCA降维
标准化 (单位不统一时) StandardScaler()
归一化 (两列数据差值较大 结果差不多只有一列取决时) MinMaxScaler()
5.预估器
分类问题:逻辑回归(LogisticRegression)、决策树(DecisionTreeClassifier
)、朴素贝叶斯(GaussianNB、MultinomialNB)、随机森林(RandomForestClassifier)、支持向量机(svm)、神经网络
二分类: 逻辑回归 、支持向量机(SVM) 、决策树、随机森林、朴素贝叶斯
多回归:支持向量机、决策树、随机森林、神经网络
回归问题:线性回归(LinearRegression)、岭回归(Ridge)、多项式回归(PolynomialFeatures)、随机森林(RandomForestRegression)、支持向量回归
朴素贝叶斯: 1.高斯模型 2.多项式朴素贝叶斯 3.伯努利模型
集成方法
投票器 VotingClassifier、VotingRegression
硬投票 结果决定 少数服从多数
软投票 概率决定 加权平均值
vote=VotingClassifier(estimators=[("decision",decision),("random",bagging),("b",Gradient)],voting="hard")
vote.fit(new_x_train,y_train)
y_pred=vote.predict(new_x_test)
vote_score=accuracy_score(y_test,y_pred)
print("vote",vote_score)
Bagging
bagging=BaggingClassifier(Gradient,n_estimators=10,random_state=42)
bagging.fit(new_x_train,y_train)
y_pred=bagging.predict(new_x_test)
baggin_score=accuracy_score(y_test,y_pred)
print("bagging",baggin_score)
boost
(Adaboost、 XGboost、Gradientboost)
Gradient=GradientBoostingClassifier()
Gradient.fit(new_x_train,y_train)
y_pred=Gradient.predict(new_x_test)
gradient_score=accuracy_score(y_test,y_pred)
print("grandient",gradient_score)
stacking
stacking=StackingClassifier([("decision",decision),("random",bagging),("b",Gradient)],final_estimator=vote)
stacking.fit(new_x_train,y_train)
y_pred=stacking.predict(new_x_test)
stacking_score=accuracy_score(y_test,y_pred)
print("stack",stacking_score)
)
6.模型调优:
数据增强:对原始数据进行随机变换 如 翻转 旋转 缩放等
7.模型指标
分类问题:正确率 、 精确率(accuracy_score(y_test, y_predict)) 、
回归问题:决定系数(r2_score(y_test,y_pred)) 、均方误差
学习项目:
预测股票价格
文本分类
垃圾邮件识别
手写数字识别
情感分析项目
物品推荐系统