python-分类模型


# coding: utf-8

#决策树分类

import numpy as np
import pandas as pd
filename='data\\BankDebt.csv'
# data=read_csv(filename)
# data[data['拥有房产']=='是',['拥有房产']]=1
data = pd.read_csv(filename, index_col = 0, header = None)
data.loc[data[1] == 'Yes',1 ] = 1
data.loc[data[1] == 'No',1 ] = 0
data.loc[data[4] == 'Yes',4 ] = 1
data.loc[data[4] == 'No',4 ] = 0
data.loc[data[2] == 'Single',2 ] = 1
data.loc[data[2] == 'Married',2 ] = 2
data.loc[data[2] == 'Divorced',2] = 3
print( data.loc[1:5,:] )
#有效值超过4个
data.dropna(thresh=4,inplace=True)

x = data.loc[ :, 1:3 ].values.astype(float)
y = data.loc[ :, 4].values.astype(int)
from sklearn  import tree
clf=tree.DecisionTreeClassifier()
clf=clf.fit(x,y)#封装了目标函数

分类模型性能评估方法


#性能评估:计算决定系数,即为目标值和预测值之间的误差
clf.score(x,y)#accuracy
#预测数据
predicted_y = clf.predict(x)
from sklearn import metrics
#预测数据上看召回率和精确度
print(metrics.classification_report(y, predicted_y))
print('Confusion matrix:' )
metrics.confusion_matrix(y,predicted_y)

在这里插入图片描述
召回率
所有标记为真实为YES的测试样本中,预测为YES的案例

recall=aa+c recall=\frac{a}{a+c} recall=a+ca

精确度
所有预测为YES的测试样本中,真实为YES的案例
precssion=aa+b precssion=\frac{a}{a+b} precssion=a+ba

精确度越高,意味着在遇到正例(真实为Yes)时筛选作为Yes的条件更高。召回率降低

对这一点不太理解,a/a+c中ac均减小,精确度怎么变高?

看调和平均数
F1=2a2a+b+c F1=\frac{2a}{2a+b+c} F1=2a+b+c2a

#找data2中的最大值和最小值位置
import pandas as pd
data=pd.read_csv("data\\stockPrice.csv",index_col=0,usecols=[0,1])
data.idxmin()#data 的date作为索引才可能找到最小值 date不是数据
data2=pd.read_csv("data\\stockPrice.csv",index_col=0)
data2=data2.reset_index()
data2=data2.drop(['date'],axis=1)
data2.idxmin()#找每一列的最小值行数
data2.stack().idxmax()
data2.stack()

引用:数据科学与技术(宋晖)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值