用Plotily处理数据的基本操作
import pandas as pd # 导入数据.scv df = pd.read_csv(" .csv") # 查看前五行数据 df.head() # 查看一下数据描述 df.descirbe() # 查看一下数据的形状 df.shape # 查看一下数据集中都包含哪些列 df.columns # 对数据进行可视化 import matplotlib.pyplot as plt import seaborn as sns # 使用Jupyter Notebook # import warnings # warnings.filterwarnings("ignore") # %matplotlib inline # 创建自定义图像 figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True) # 标题 plt.title(" ") # 画出数据分布图 sns.displot(df[" "]) # !pip install plotly # 安装Plotily库 # 导入绘图工具库 import plotly.offline as offline import plotly.graph_objs as go import plotly.offline as py from plotly.offline import init_notebook_mode, iplot init_notebook_mode(connected=True) offline.init_notebook_mode() # 查看表格某列中有多少个不同值的快捷方法,并计算每个不同值有在该列中有多少重复值 temp = df[" "].value_counts() # 画出柱状图,查看不同值所占比重 trace = [go.Bar(x = temp.index, y = (temp / temp.sum()) * 100)] # 设置图的字体颜色等 layout = go.Layout( title=" ", xaxis=dict(title=' ', tickfont=dict(size= , color='rgb( , , )')), yaxis=dict(title=' ', titlefont=dict(size= , color='rgb( , , )'), tickfont=dict(size= , color='rgb( , , )')) ) # 显示图形 fig = go.Figure(data=trace, layout=layout) iplot(fig, filename=' ') # 画出饼状图 trace = [go.Pie(labels=temp.index, values=temp.values)] # 设置图题 layout = go.Layout( title=' ', ) # 显示图形 fig = go.Figure(data=trace, layout=layout) iplot(fig) # 画出饼状图,圆环型 trace = [go.Pie(labels=temp.index, values=temp.values, hole=0.6)] temp1 = df["FLAG_OWN_CAR"].value_counts() temp2 = df["FLAG_OWN_REALTY"].value_counts() # 画出两个饼状图 trace = [go.Pie(labels=temp1.index, values=temp1.values, domain={"x": [0, .48]}, hole=0.6), go.Pie(labels=temp2.index, values=temp2.values, domain={"x": [0.5, 1]}, hole=0.6)] # 设置图中的字体,图题等 layout = go.Layout( title=' ', annotations=[{"font": { "size": }, "showarrow": , "text": " ", "x": 0. , # 坐标 "y": 0. }, {"font": { "size": }, "showarrow": , "text": " ", "x": 0. , "y": 0. }]) # 显示图形 fig = go.Figure(data=trace, layout=layout) iplot(fig) # 计数方法 temp_y0 = [] temp_y1 = [] for val in temp.index: temp_y1.append(np.sum(df["TARGET"][df["TYPE"] == val] == 1)) temp_y0.append(np.sum(df["TARGET"][df["TYPE"] == val] == 0)) temp_y1 = np.array(temp_y1) temp_y0 = np.array(temp_y0) # 删除掉存在缺失值的特征列 df_drop = df.dropna(axis=1) df_drop.head() # 将其编码成为数值形式 from sklearn import preprocessing # 取出非数值的列 categorical_feats = [ f for f in df_drop.columns if df_drop[f].dtype == 'object' ] # 对非数值的列进行编码 for col in categorical_feats: lb = preprocessing.LabelEncoder() lb.fit(list(df_drop[col].values.astype('str'))) df_drop[col] = lb.transform(list(df_drop[col].values.astype('str'))) df_drop.head() # 划分数据 # 删除ID df_drop1 = df_drop.drop("ID", axis=1) # 提取训练特征数据和目标值 data_X = df_drop1.drop(" ", axis=1) data_y = df_drop1[' '] #划分数据集为训练数据集和测试数据集 from sklearn import model_selection train_x, test_x, train_y, test_y = model_selection.train_test_split(data_X.values, data_y.values, test_size=0.8, random_state=0) # 构建预测模型 from sklearn.ensemble import RandomForestClassifier model = RandomForestClassifier() # 构建模型 model.fit(train_x, train_y) # 训练模型 from sklearn import metrics y_pred = model.predict(test_x) # 预测测试集 metrics.accuracy_score(y_pred, test_y) # 评价预测结果 print(metrics.classification_report(y_pred, test_y)) features = data_X.columns.values # 取出数据集中的列名,即特征名 # 得到特征与其重要性 x, y = (list(x) for x in zip(*sorted(zip(model.feature_importances_, features), reverse=False))) # 画出柱状图 trace2 = go.Bar(x=x, y=y, marker=dict(color=x, colorscale='Viridis', reversescale=True), name=' ', orientation='h',) # 设置图题、字体等 layout = dict(title=' ', width=900, height=2000, yaxis=dict(showgrid=False, showline=False, showticklabels=True,), margin=dict(l=300,)) # 显示图形 fig1 = go.Figure(data=[trace2]) fig1['layout'].update(layout) iplot(fig1, filename='plots') from sklearn.tree import DecisionTreeClassifier from sklearn.neural_network import MLPClassifier from sklearn.ensemble import AdaBoostClassifier from sklearn.ensemble import BaggingClassifier from sklearn.ensemble import GradientBoostingClassifier from sklearn.linear_model import LogisticRegression # 构建 7 种算法 models = [LogisticRegression(solver='lbfgs'), # 逻辑回归 RandomForestClassifier(n_estimators=100), # 随机森林 DecisionTreeClassifier(), # 决策树 MLPClassifier(max_iter=100), # 多层感知机 AdaBoostClassifier(), # 自适应梯度提升 BaggingClassifier(), # 装袋算法 GradientBoostingClassifier()] # 梯度提升算法 model_name = ['LogisticRegression', 'RandomForestClassifier', "DecisionTreeClassifier", 'MLPClassifier', 'AdaBoostClassifier', 'BaggingClassifier', 'GradientBoostingClassifier'] acc = [] # 存放各算法的准确率 f1 = [] # 存放各算法的 f1 值 recall = [] # 存放各算法的召回率 for model in models: # 训练每个算法 model.fit(train_x, train_y) acc.append(model.score(test_x, test_y)) y_pred = model.predict(test_x) f1.append(metrics.f1_score(y_pred, test_y)) recall.append(metrics.recall_score(y_pred, test_y)) # 打印每种算法的评估结果 pd.DataFrame({"name": model_name, "acc": acc, "f1": f1, "recall": recall})
用Plotily处理数据的基本操作的更多相关文章
- MySQL:数据表基本操作
数据表基本操作 注意点: 1.数据表中已经有数据时,轻易修改数据类型,有可能因为不同的数据类型的数据在机器 中存储的方式及长度并不相同,修改数据类型可能会影响到数据表中已有的数据类型. 2. 数据表 ...
- MySQL之终端(Terminal)管理数据库、数据表、数据的基本操作(转)
MySQL有很多的可视化管理工具,比如“mysql-workbench”和“sequel-pro-”. 现在我写MySQL的终端命令操作的文章,是想强化一下自己对于MySQL的理解,总会比使用图形化的 ...
- MySQL系列:数据表基本操作(2)
1. 指定数据库 mysql> use portal; 2. 数据库表基本操作 2.1 查看数据表 mysql> show tables; +------------------+ | T ...
- pandas学习(创建数据,基本操作)
pandas学习(一) Pandas基本数据结构 Series类型数据 Dataframe类型 基本操作 Pandas基本数据结构 两种常用数据结构: Series 一维数组,与Numpy中的一维ar ...
- MySQL 数据库、数据表、数据的基本操作
1.数据库(database)管理 1.1 create 创建数据库 create database firstDB; 1.2 show 查看所有数据库 mysql> show database ...
- ASP.NET的一般处理程序对数据的基本操作
TableList.ashx: <%@ WebHandler Language="C#" Class="TableList" %> using Sy ...
- mysql数据的基本操作
本文内容: 插入数据: 查询数据 修改数据 删除数据 首发日期:2018-04-11 插入数据: 给所有字段插入数据: 插入单条记录:insert into 表名 values(值列表); 插入多条记 ...
- MySQL开发——【数据的基本操作】
增加数据 基本语法: insert into 数据表 [字段名称1,字段名称2..] values (数据1,数据2...); 特别注意:针对数据类型整型.浮点型数据可以不加单引或双引号,但是如果字段 ...
- MySQL 5.6学习笔记(数据表基本操作)
1. 创建数据表 1.1 最基本的语法 CREATE TABLE tbl_name (col_name column_definition,...) [table_options] -column_d ...
随机推荐
- UVA - 294 Divisors (约数)(数论)
题意:输入两个整数L,U(1<=L<=U<=109,U-L<=10000),统计区间[L,U]的整数中哪一个的正约数最多.如果有多个,输出最小值. 分析: 1.求一个数的约数, ...
- java课程之团队开发第一阶段评论
1.没有UI设计,整体的样式感觉不堪入目 2.功能方面实现的并不是很多,还需要继续努力 3.还需要添加一些常用的课表功能,比如说导入课表等
- libevent简介
一.参考资料 1.ubuntu下安装libevent 2.libevent实现TCP 服务端
- 在阿里云Centos7.6中部署nginx1.16+uwsgi2.0.18+Django2.0.4
上次在网上找了一个在阿里云Centos7.6中部署nginx1.16+uwsgi2.0.18+Django2.0.4的文档,可能是这个文档不是最新版的,安装的时候遇到了很多问题, 最后跟一个大神要了一 ...
- C#构造函数调用其他构造函数
http://blog.csdn.net/dogfish/article/details/6990266 <-- 虏来的地 public class Class1 { public Class ...
- PyMySQL学习笔记
一些常用函数及解释 db = pymysql.connect('host','user','password','database') # 连接数据库 cursor = db.cursor() # 创 ...
- CodeForces - 446A DZY Loves Sequences(dp)
题意:给定一个序列a,求最长的连续子序列b的长度,在至多修改b内一个数字(可修改为任何数字)的条件下,使得b严格递增. 分析: 1.因为至多修改一个数字,假设修改a[i], 2.若能使a[i] < ...
- LINUX文件目录存放文件说明
/bin bin是Binary的缩写.这个目录存放着最经常使用的命令. /boot这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件. /dev dev是Device(设备) ...
- class选择器,外部样式表,选择器优先级
class选择器: 先在相应标签中设置一个class属性,如class=“class名”.class名{ ……css样式}注:class名以英文字母开头,可以多个标签重复使用.优先级:标签名选择器 & ...
- java AES加解密
AES加解密工具类 package com.yan.demo; import org.apache.commons.lang3.StringUtils; import sun.misc.BASE64D ...