栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

数据分析-分类-案例

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据分析-分类-案例

目录

1、导入必要的包

2、读入数据

3、数据探索

4、数据预处理

6、建立模型

6.1逻辑回归

6.2 K近邻

6.3 决策树

6.4 朴素贝叶斯

6.5 SVC



数据集来源:kaggle

1、导入必要的包
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report
import matplotlib.pyplot as plt
import pandas as pd

2、读入数据

读入数据,并为每个特征命名。

car_data=pd.read_csv("d:/datasets/car.data",names=["buying","maint","doors","person","lug_boot","safety","car_acc"])

3、数据探索
car_data.head()
car_data.tail()
car_data.describe()
car_data.info()
#查看特征与标签的取值
for i in car_data.columns:
    print(car_data[i].value_counts())

4、数据预处理

标签编码(map方法)。

car_data.car_acc=car_data.car_acc.map({"unacc":1,"acc":0,"good":0,"vgood":0})

特征编码get_dummies())

car_data_=pd.get_dummies(car_data[["lug_boot","safety","buying","maint","doors","person"]])

5、训练集、测试集划分

train_x,test_x,train_y,test_y=train_test_split(car_data_,car_data.car_acc,test_size=0.3,random_state=10)

6、建立模型

6.1逻辑回归

建立模型、训练、预测

lr=LogisticRegression()
lr.fit(train_x,train_y)
y_pre=lr.predict(test_x)

评价

print(classification_report(y_pre,test_y))  #输出分类报告
print(lr.coef_)   #输出回归系数
lr.score(test_x,test_y)  #输出正确率
from sklearn.metrics import accuracy_score
accuracy_score(y_pre,test_y) #输出正确率

6.2 K近邻

6.3 决策树

建立模型、训练、预测

from sklearn.tree import DecisionTreeClassifier
dt=DecisionTreeClassifier(max_depth=3)  #深度较小,为方便可视化
dt.fit(train_x,train_y)
dt_pre=dt.predict(test_x)

评价

dt.score(test_x,test_y)
print(classification_report(dt_pre,test_y))

可视化决策树

from sklearn.tree import export_graphviz
from six import StringIO
from IPython.display import Image 
import pydotplus
plt.rcParams['font.sans-serif']=['SimHei']  #正常显示中文
plt.rcParams['axes.unicode_minus']=False   #正常显示负号“-”

## 输出图片到dot文件
export_graphviz(dt, out_file='tree.dot', 
                feature_names=train_x.columns,
                rounded=True, filled=True,
                class_names=['acc', 'unacc'])
## 使用dot文件构造图
graph= pydotplus.graph_from_dot_file('tree.dot')
Image(graph.create_png())

6.4 朴素贝叶斯
from sklearn.naive_bayes import GaussianNB  
from sklearn.naive_bayes import BernoulliNB
from sklearn.naive_bayes import MultinomialNB
GNB=GaussianNB()
GNB.fit(train_x,train_y)
y_pred=GNB.predict(test_x)
GNB.score(test_x,test_y)
print(classification_report(test_y,y_pred))
pd.Dataframe(GNB.theta_.T,index=test_x.columns).rename(columns={0:"0类",1:"1类"}).plot(kind="bar",rot=60,figsize=(12,5))

BNB=BernoulliNB()
BNB.fit(train_x,train_y)
y_pred=BNB.predict(test_x)
BNB.score(test_x,test_y)
print(classification_report(test_y,y_pred))
MNB=MultinomialNB()
MNB.fit(train_x,train_y)
y_pred=MNB.predict(test_x)
MNB.score(test_x,test_y)
print(classification_report(test_y,y_pred))

6.5 SVC
from sklearn.svm import SVC
from sklearn.svm import LinearSVC
SVC_=SVC()
SVC_.fit(train_x,train_y)
y_pred=SVC_.predict(test_x)
SVC_.score(test_x,test_y)
print(classification_report(test_y,y_pred))
LSVC_=LinearSVC()
LSVC_.fit(train_x,train_y)
y_pred=LSVC_.predict(test_x)
LSVC_.score(test_x,test_y)
print(classification_report(test_y,y_pred))

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/755478.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号