python的统计库_python--学习笔记13 统计库

可以先绘制散点图查看数据分布情况,然后再使用检验包进行

Statsmodels

用于探索数据、估计模型、并运行统计检验的Python包。

importstatsmodels.api as sm

y=df['sepal lengthh'][:50]

x=df['sepal width'][:50]

X=sm.add_constant(x) #在现有矩阵添加截距列

results=sm.OLS(y,x).fit() #fit方法返回一个回归结果对象,OLS拟合最小二乘线性回归

print(results.summary()) #输出模型诊断

ax.plot(x,results.fittedvalues,label='regression line') #绘制回归线

scikit-learn

from sklearn.ensemble import RandomForestClassifier #引入随机森林分类器

from sklearn.cross_validation import train_test_split #引入分组模块

train_test_split 将数据分为训练组和测试组,并且会打乱数据的先后顺序。

clf = RandomForestClassifier(max_depth =5,n_estimators =10) #使用10个决策树,最多5层深度的随机森林分类器

X=df.ix[:,:4]

y=df.ix[:,4]

X_train,X_test,y_train,y_test= train_test_split(X,y,test_size)=.3)

clf.fit(X_train,y_train)

y_pred=clf.predict(X_test)

rf=pd.DataFrame(list(zip(y_pred,y_test)),columns=['predict','actual'])

rf['correct']=rf.apply(lambda r: 1 if rf['predict']==rf['actual'] else 0, axis =1)

rf['correct'].sum()/rf['correct'].count() #计算准确率

sorted 排序

归一化标准化

fromsklearn.preprocessing import StandardScaler

ss_X=StandardScalaer()

X_train=ss_X.fit_transform(X_train) #矩阵

X_test= ss_X.transform(X_test) #列

归一化其实就是标准化的一种方式,只不过归一化是将数据映射到了[0,1]这个区间中。

标准化则是将数据按照比例缩放,使之放到一个特定区间中。标准化后的数据的均值=0,标准差=1,因而标准化的数据可正可负。

统计数据的列必须数值类型。

sudf.loc[:,'Rent']=sudf['Rent'].astype(int) #修改数据类型

sudf.loc[:,'Beds']=sudf['Beds'].map(lambda x : 0 if 'Studio' in x else x) #替换值

pandas有一个.pivot_table函数,用来进行数据透视。

地图可视化库 folium

patsy是一个python库,用于描述统计模型(尤其是线性模型),方法是通过一个叫做公式语法(formula syntax)的字符串来描述。这种公式语法的灵感来源于R和S语言中的公式语法。 Patsy的公式是有特殊格式的字符串,像下面这样: y ~ x0 + x1 这种a + b的语法并不代表将a和b相加,而是代表为模型创建的设计矩阵的术语(terms in the design matrix)。

importpatsyimportstatsmodels.api as sm

f='Rent ~Zip + Beds' # 因变量 ~ 自变量y,X= patsy.dmatrices(f, su_lt_two, return_type = 'dataframe')

results=sm.OLS(y,X).fit()print(results.summary())

operator——函数的标准操作

代码资源:Lib/operator.py

operator模块输出一系列对应Python内部操作符的函数。例如:operator.add(x, y)等价于表达式x+y。许多函数的名称都被一些特定的方法使用,没有下划线加持。为了向下兼容,它们中的许多都保留着由双下划线的变体。那些不具备双下划线的变体是为了使表达更清晰。

这些函数在各种函数目录里扮演者对相比较、逻辑操作、数学运算以及序列操作等角色。

对于所有对象来讲对象比较函数是十分有用的,并且这些函数以它们支持的丰富的比较操作命名。

operator. lt(a, b)          //less than小于

operator. le(a, b)          //lessthan or equal to小于等于

operator. eq(a, b)          //equal to等于

operator. ne(a, b)          //not equalto不等于

operator. ge(a, b)          //greaterand equal to大于等于

operator. gt(a, b)          //greater大于

operator. __le__(a, b)

operator. __lt__(a, b)

operator. __eq__(a, b)

operator. __ne__(a, b)

operator. __ge__(a, b)

operator. __gt__(a, b)

在a与b之间之行丰富的比较操作。特别地,lt(a, b)等价于a < b、le(a, b)等价于a <= b、eq(a, b)等价于a == b、ne(a, b)等价于a != b、gt(a, b)等价于a > b、ge(a, b)等价于a >= b。注意:这些函数可以返回任何值,这个值可能当做布尔值用、也有可能不行。

逻辑操作一般也适用于所有对象,并且支持真值比较、定义测试和布尔操作。

https://blog.csdn.net/zhtysw/article/details/80510113

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值