可以先绘制散点图查看数据分布情况,然后再使用检验包进行
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