python数据预处理代码(python数据预处理代码讲解)

http://www.itjxue.com  2023-04-10 14:50  来源:未知  点击次数: 

教你如何用python6个步骤搞定金融数据挖掘预处理

数据预处理没有标准的流程,通常针对不同的任务和数据集属性的不同而不同。下面就一起看下常用六大步完成数据预处理。

Step 1:导入相关模块

Step 2:获取数据

特征构造

Step 3:处理缺失值

Step 4:分类数据编码

创建虚拟变量

Step 5:划分训练集和测试集

Step 6:特征标准化

数据变换十大秘诀

数据变换[1]是将数据集的每个元素乘以常数;也就是说,将每个数变换为,其中,和都是实数。数据变换将可能改变数据的分布以及数据点的位置。

数据标准化[2](有时称为 z-score 或 standar score)是已重新缩放为平均值为零且标准偏差为1的变量。对于标准化变量,每种情况下的值在标准化变量上的值都表明它与原始变量的均值(或原始变量的标准偏差)的差值。

归一化数据 是将数据缩放到0到1范围内。

Binarizing Data

二值化[3]是将任何实体的数据特征转换为二值化的向量以使分类器算法更高效的过程。在一个简单的示例中,将图像的灰度从0-255光谱转换为0-

1 光谱就是二值化。

Mean Removal

去均值法 是将均值从每一列或特征中移除,使其以零为中心的过程。

One Hot Encoding

独热编码[4]是将分类变量转换为可以提供给ML算法以更好地进行预测的形式的过程。

Label Encoding

标签编码 适用于具有分类变量并将数据转换为数字的数据。

fit

transform

词向量 用于带有标签和数字的数据。此外,词向量可用于提取数据。

获取特征名称

Polynomial Features

多项式特征 用于生成多项式特征和交互特征。它还生成了一个新的特征矩阵数据,该数据是由所有次数小于或等于指定次数的特征的多项式组合组成的。

截距项

填补 (如用均值填补缺失值),它用列或特性数据中的平均值替换缺失的值

如何用Python在10分钟内建立一个预测模型

预测模型的分解过程

我总是集中于投入有质量的时间在建模的初始阶段,比如,假设生成、头脑风暴、讨论或理解可能的结果范围。所有这些活动都有助于我解决问题,并最终让我设计出更强大的商业解决方案。为什么你要在前面花费这段时间,这有充分的理由:

你有足够的时间投入并且你是无经验的(这是有影响的)

你不带有其它数据观点或想法的偏见(我总是建议,在深入研究数据之前做假设生成)

在后面的阶段,你会急于完成该项目而没有能力投入有质量的时间了。

这个阶段需要投入高质量时间,因此我没有提及时间表,不过我建议你把它作为标准的做法。这有助于你建立建立更好地预测模型,在后面的阶段的只需较少的迭代工作。让我们来看看建立第一个模型的剩余阶段的时间表:

数据描述性分析——50%的时间

数据预处理(缺失值和异常值修复)——40%的时间

数据建模——4%的时间

性能预测——6%的时间

让我们一步一步完成每个过程(每一步投入预测的时间):

阶段1:描述性分析/数据探索

在我刚开始成为数据科学家的时候,数据探索占据了我大量的时间。不过,随着时间的推移,我已经把大量的数据操作自动化了。由于数据准备占据建立第一个模型工作量的50%,自动化的好处是显而易见的。

这是我们的第一个基准模型,我们去掉任何特征设计。因此,描述分析所需的时间仅限于了解缺失值和直接可见的大的特征。在我的方法体系中,你将需要2分钟来完成这一步(假设,100000个观测数据集)。

我的第一个模型执行的操作:

确定ID,输入特征和目标特征

确定分类和数值特征

识别缺失值所在列

阶段2:数据预处理(缺失值处理)

有许多方法可以解决这个问题。对于我们的第一个模型,我们将专注于智能和快速技术来建立第一个有效模型。

为缺失值创建假标志:有用,有时缺失值本身就携带了大量的信息。

用均值、中位数或其它简单方法填补缺失值:均值和中位数填补都表现良好,大多数人喜欢用均值填补但是在有偏分布的情况下我建议使用中位数。其它智能的方法与均值和中位数填补类似,使用其它相关特征填补或建立模型。比如,在Titanic生存挑战中,你可以使用乘客名字的称呼,比如:“Mr.”, “Miss.”,”Mrs.”,”Master”,来填补年龄的缺失值,这对模型性能有很好的影响。

填补缺失的分类变量:创建一个新的等级来填补分类变量,让所有的缺失值编码为一个单一值比如,“New_Cat”,或者,你可以看看频率组合,使用高频率的分类变量来填补缺失值。

由于数据处理方法如此简单,你可以只需要3到4分钟来处理数据。

阶段3:数据建模

根据不同的业务问题,我推荐使用GBM或RandomForest技术的任意一种。这两个技术可以极其有效地创建基准解决方案。我已经看到数据科学家通常把这两个方法作为他们的第一个模型同时也作为最后一个模型。这最多用去4到5分钟。

阶段4:性能预测

有各种各样的方法可以验证你的模型性能,我建议你将训练数据集划分为训练集和验证集(理想的比例是70:30)并且在70%的训练数据集上建模。现在,使用30%的验证数据集进行交叉验证并使用评价指标进行性能评估。最后需要1到2分钟执行和记录结果。

本文的目的不是赢得比赛,而是建立我们自己的基准。让我们用python代码来执行上面的步骤,建立你的第一个有较高影响的模型。

让我们开始付诸行动

首先我假设你已经做了所有的假设生成并且你擅长使用python的基本数据科学操作。我用一个数据科学挑战的例子来说明。让我们看一下结构:

步骤1:导入所需的库,读取测试和训练数据集。

#导入pandas、numpy包,导入LabelEncoder、random、RandomForestClassifier、GradientBoostingClassifier函数

import pandas as pd

import numpy as np

fromsklearn.preprocessing import LabelEncoder

import random

fromsklearn.ensemble import RandomForestClassifier

from sklearn.ensembleimport GradientBoostingClassifier

#读取训练、测试数据集

train=pd.read_csv('C:/Users/AnalyticsVidhya/Desktop/challenge/Train.csv')

test=pd.read_csv('C:/Users/AnalyticsVidhya/Desktop/challenge/Test.csv')

#创建训练、测试数据集标志

train='Train'

test='Test'

fullData =pd.concat(,axis=0) #联合训练、测试数据集

步骤2:该框架的第二步并不需要用到python,继续下一步。

步骤3:查看数据集的列名或概要

fullData.columns # 显示所有的列名称

fullData.head(10) #显示数据框的前10条记录

fullData.describe() #你可以使用describe()函数查看数值域的概要

步骤4:确定a)ID变量 b)目标变量 c)分类变量 d)数值变量 e)其他变量。

ID_col =

target_col =

cat_cols =

num_cols= list(set(list(fullData.columns))-set(cat_cols)-set(ID_col)-set(target_col)-set(data_col))

other_col= #为训练、测试数据集设置标识符

步骤5:识别缺失值变量并创建标志

fullData.isnull().any()#返回True或False,True意味着有缺失值而False相反

num_cat_cols = num_cols+cat_cols # 组合数值变量和分类变量

#为有缺失值的变量创建一个新的变量

# 对缺失值标志为1,否则为0

for var in num_cat_cols:

if fullData.isnull().any()=True:

fullData=fullData.isnull()*1

步骤6:填补缺失值

#用均值填补数值缺失值

fullData = fullData.fillna(fullData.mean(),inplace=True)

#用-9999填补分类变量缺失值

fullData = fullData.fillna(value = -9999)

步骤7:创建分类变量的标签编码器,将数据集分割成训练和测试集,进一步,将训练数据集分割成训练集和测试集。

#创建分类特征的标签编码器

for var in cat_cols:

number = LabelEncoder()

fullData = number.fit_transform(fullData.astype('str'))

#目标变量也是分类变量,所以也用标签编码器转换

fullData = number.fit_transform(fullData.astype('str'))

train=fullData='Train']

test=fullData='Test']

train = np.random.uniform(0, 1, len(train)) = .75

Train, Validate = train=True], train=False]

步骤8:将填补和虚假(缺失值标志)变量传递到模型中,我使用随机森林来预测类。

features=list(set(list(fullData.columns))-set(ID_col)-set(target_col)-set(other_col))

x_train = Train.values

y_train = Train.values

x_validate = Validate.values

y_validate = Validate.values

x_test=test.values

random.seed(100)

rf = RandomForestClassifier(n_estimators=1000)

rf.fit(x_train, y_train)

步骤9:检查性能做出预测

status = rf.predict_proba(x_validate)

fpr, tpr, _ = roc_curve(y_validate, status)

roc_auc = auc(fpr, tpr)

print roc_auc

final_status = rf.predict_proba(x_test)

test=final_status

test.to_csv('C:/Users/Analytics Vidhya/Desktop/model_output.csv',columns=)

现在可以提交了!

Python Keras导入训练集验证集测试集,并进行数据预处理

import os

import numpy as np

from tqdm import tqdm #进度条

from glob import glob

from scipy import ndimage

from keras.preprocessing.image import ImageDataGeneratior

import keras

img_size = 255 # 自行更改

train_path = r'D:\CVML\Project\Heartchallenge_sound\Peter_HeartSound\Train_Valid_Test\train'

num_train = len( glob (train_path + r'**.jpg') ) #图片数量

x_train = np.zeros( (num_train, img_size, img_size, 3), dtype=np.uint8) #训练集

y_train = np.zeros( (num_train,), dtype=np.uint8) #训练集label

i=0

for img_path in tqdm( glob(train_path + r'**.jpg) ):

datagen = ImageDataGenerator(rescale = 1.0/255.0, featurewise_center = True, featurewise_std_normalization= True)

datagen.fit(x_train) #图片预处理

待解决问题: 如何输入??

数据分析员用python做数据分析是怎么回事,需要用到python中的那些内容,具体是怎么操作的?

最近,Analysis with Programming加入了Planet Python。我这里来分享一下如何通过Python来开始数据分析。具体内容如下:

数据导入

导入本地的或者web端的CSV文件;

数据变换;

数据统计描述;

假设检验

单样本t检验;

可视化;

创建自定义函数。

数据导入

1

这是很关键的一步,为了后续的分析我们首先需要导入数据。通常来说,数据是CSV格式,就算不是,至少也可以转换成CSV格式。在Python中,我们的操作如下:

import pandas as pd

# Reading data locally

df = pd.read_csv('/Users/al-ahmadgaidasaad/Documents/d.csv')

# Reading data from web

data_url = ""

df = pd.read_csv(data_url)

为了读取本地CSV文件,我们需要pandas这个数据分析库中的相应模块。其中的read_csv函数能够读取本地和web数据。

END

数据变换

1

既然在工作空间有了数据,接下来就是数据变换。统计学家和科学家们通常会在这一步移除分析中的非必要数据。我们先看看数据(下图)

对R语言程序员来说,上述操作等价于通过print(head(df))来打印数据的前6行,以及通过print(tail(df))来打印数据的后6行。当然Python中,默认打印是5行,而R则是6行。因此R的代码head(df, n = 10),在Python中就是df.head(n = 10),打印数据尾部也是同样道理

请点击输入图片描述

2

在R语言中,数据列和行的名字通过colnames和rownames来分别进行提取。在Python中,我们则使用columns和index属性来提取,如下:

# Extracting column names

print df.columns

# OUTPUT

Index([u'Abra', u'Apayao', u'Benguet', u'Ifugao', u'Kalinga'], dtype='object')

# Extracting row names or the index

print df.index

# OUTPUT

Int64Index([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78], dtype='int64')

3

数据转置使用T方法,

# Transpose data

print df.T

# OUTPUT

0 ? ? ?1 ? ? 2 ? ? ?3 ? ? 4 ? ? ?5 ? ? 6 ? ? ?7 ? ? 8 ? ? ?9

Abra ? ? ?1243 ? 4158 ?1787 ?17152 ?1266 ? 5576 ? 927 ?21540 ?1039 ? 5424

Apayao ? ?2934 ? 9235 ?1922 ?14501 ?2385 ? 7452 ?1099 ?17038 ?1382 ?10588

Benguet ? ?148 ? 4287 ?1955 ? 3536 ?2530 ? ?771 ?2796 ? 2463 ?2592 ? 1064

Ifugao ? ?3300 ? 8063 ?1074 ?19607 ?3315 ?13134 ?5134 ?14226 ?6842 ?13828

Kalinga ?10553 ?35257 ?4544 ?31687 ?8520 ?28252 ?3106 ?36238 ?4973 ?40140

... ? ? ? 69 ? ? 70 ? ? 71 ? ? 72 ? ? 73 ? ? 74 ? ? 75 ? ? 76 ? ? 77

Abra ? ? ... ? ?12763 ? 2470 ?59094 ? 6209 ?13316 ? 2505 ?60303 ? 6311 ?13345

Apayao ? ... ? ?37625 ?19532 ?35126 ? 6335 ?38613 ?20878 ?40065 ? 6756 ?38902

Benguet ?... ? ? 2354 ? 4045 ? 5987 ? 3530 ? 2585 ? 3519 ? 7062 ? 3561 ? 2583

Ifugao ? ... ? ? 9838 ?17125 ?18940 ?15560 ? 7746 ?19737 ?19422 ?15910 ?11096

Kalinga ?... ? ?65782 ?15279 ?52437 ?24385 ?66148 ?16513 ?61808 ?23349 ?68663

78

Abra ? ? ?2623

Apayao ? 18264

Benguet ? 3745

Ifugao ? 16787

Kalinga ?16900

Other transformations such as sort can be done using codesort/code attribute. Now let's extract a specific column. In Python, we do it using either codeiloc/code or codeix/code attributes, but codeix/code is more robust and thus I prefer it. Assuming we want the head of the first column of the data, we have

4

其他变换,例如排序就是用sort属性。现在我们提取特定的某列数据。Python中,可以使用iloc或者ix属性。但是我更喜欢用ix,因为它更稳定一些。假设我们需数据第一列的前5行,我们有:

print df.ix[:, 0].head()

# OUTPUT 0 ? ? 1243 1 ? ? 4158 2 ? ? 1787 3 ? ?17152 4 ? ? 1266 Name: Abra, dtype: int64

5

顺便提一下,Python的索引是从0开始而非1。为了取出从11到20行的前3列数据,我们有

print df.ix[10:20, 0:3]

# OUTPUT

Abra ?Apayao ?Benguet

10 ? ?981 ? ?1311 ? ? 2560

11 ?27366 ? 15093 ? ? 3039

12 ? 1100 ? ?1701 ? ? 2382

13 ? 7212 ? 11001 ? ? 1088

14 ? 1048 ? ?1427 ? ? 2847

15 ?25679 ? 15661 ? ? 2942

16 ? 1055 ? ?2191 ? ? 2119

17 ? 5437 ? ?6461 ? ? ?734

18 ? 1029 ? ?1183 ? ? 2302

19 ?23710 ? 12222 ? ? 2598

20 ? 1091 ? ?2343 ? ? 2654

上述命令相当于df.ix[10:20, ['Abra', 'Apayao', 'Benguet']]。

6

为了舍弃数据中的列,这里是列1(Apayao)和列2(Benguet),我们使用drop属性,如下:

print df.drop(df.columns[[1, 2]], axis = 1).head()

# OUTPUT

Abra ?Ifugao ?Kalinga

0 ? 1243 ? ?3300 ? ?10553

1 ? 4158 ? ?8063 ? ?35257

2 ? 1787 ? ?1074 ? ? 4544

3 ?17152 ? 19607 ? ?31687

4 ? 1266 ? ?3315 ? ? 8520

axis?参数告诉函数到底舍弃列还是行。如果axis等于0,那么就舍弃行。

END

统计描述

1

下一步就是通过describe属性,对数据的统计特性进行描述:

print df.describe()

# OUTPUT

Abra ? ? ? ?Apayao ? ? ?Benguet ? ? ? ?Ifugao ? ? ? Kalinga

count ? ? 79.000000 ? ? 79.000000 ? ?79.000000 ? ? 79.000000 ? ? 79.000000

mean ? 12874.379747 ?16860.645570 ?3237.392405 ?12414.620253 ?30446.417722

std ? ?16746.466945 ?15448.153794 ?1588.536429 ? 5034.282019 ?22245.707692

min ? ? ?927.000000 ? ?401.000000 ? 148.000000 ? 1074.000000 ? 2346.000000

25% ? ? 1524.000000 ? 3435.500000 ?2328.000000 ? 8205.000000 ? 8601.500000

50% ? ? 5790.000000 ?10588.000000 ?3202.000000 ?13044.000000 ?24494.000000

75% ? ?13330.500000 ?33289.000000 ?3918.500000 ?16099.500000 ?52510.500000

max ? ?60303.000000 ?54625.000000 ?8813.000000 ?21031.000000 ?68663.000000

END

假设检验

1

Python有一个很好的统计推断包。那就是scipy里面的stats。ttest_1samp实现了单样本t检验。因此,如果我们想检验数据Abra列的稻谷产量均值,通过零假设,这里我们假定总体稻谷产量均值为15000,我们有:

from scipy import stats as ss

# Perform one sample t-test using 1500 as the true mean

print ss.ttest_1samp(a = df.ix[:, 'Abra'], popmean = 15000)

# OUTPUT

(-1.1281738488299586, 0.26270472069109496)

返回下述值组成的元祖:

t : 浮点或数组类型t统计量

prob : 浮点或数组类型two-tailed p-value 双侧概率值

2

通过上面的输出,看到p值是0.267远大于α等于0.05,因此没有充分的证据说平均稻谷产量不是150000。将这个检验应用到所有的变量,同样假设均值为15000,我们有:

print ss.ttest_1samp(a = df, popmean = 15000)

# OUTPUT

(array([ -1.12817385, ? 1.07053437, -65.81425599, ?-4.564575 ?, ? 6.17156198]),

array([ ?2.62704721e-01, ? 2.87680340e-01, ? 4.15643528e-70,

1.83764399e-05, ? 2.82461897e-08]))

第一个数组是t统计量,第二个数组则是相应的p值

END

可视化

1

Python中有许多可视化模块,最流行的当属matpalotlib库。稍加提及,我们也可选择bokeh和seaborn模块。之前的博文中,我已经说明了matplotlib库中的盒须图模块功能。

请点击输入图片描述

2

# Import the module for plotting

import matplotlib.pyplot as plt

plt.show(df.plot(kind = 'box'))

现在,我们可以用pandas模块中集成R的ggplot主题来美化图表。要使用ggplot,我们只需要在上述代码中多加一行,

import matplotlib.pyplot as plt

pd.options.display.mpl_style = 'default' # Sets the plotting display theme to ggplot2

df.plot(kind = 'box')

3

这样我们就得到如下图表:

请点击输入图片描述

4

比matplotlib.pyplot主题简洁太多。但是在本文中,我更愿意引入seaborn模块,该模块是一个统计数据可视化库。因此我们有:

# Import the seaborn library

import seaborn as sns

# Do the boxplot

plt.show(sns.boxplot(df, widths = 0.5, color = "pastel"))

请点击输入图片描述

5

多性感的盒式图,继续往下看。

请点击输入图片描述

6

plt.show(sns.violinplot(df, widths = 0.5, color = "pastel"))

请点击输入图片描述

7

plt.show(sns.distplot(df.ix[:,2], rug = True, bins = 15))

请点击输入图片描述

8

with sns.axes_style("white"):

plt.show(sns.jointplot(df.ix[:,1], df.ix[:,2], kind = "kde"))

请点击输入图片描述

9

plt.show(sns.lmplot("Benguet", "Ifugao", df))

END

创建自定义函数

在Python中,我们使用def函数来实现一个自定义函数。例如,如果我们要定义一个两数相加的函数,如下即可:

def add_2int(x, y):

return x + y

print add_2int(2, 2)

# OUTPUT

4

顺便说一下,Python中的缩进是很重要的。通过缩进来定义函数作用域,就像在R语言中使用大括号{…}一样。这有一个我们之前博文的例子:

产生10个正态分布样本,其中和

基于95%的置信度,计算和?;

重复100次; 然后

计算出置信区间包含真实均值的百分比

Python中,程序如下:

import numpy as np

import scipy.stats as ss

def case(n = 10, mu = 3, sigma = np.sqrt(5), p = 0.025, rep = 100):

m = np.zeros((rep, 4))

for i in range(rep):

norm = np.random.normal(loc = mu, scale = sigma, size = n)

xbar = np.mean(norm)

low = xbar - ss.norm.ppf(q = 1 - p) * (sigma / np.sqrt(n))

up = xbar + ss.norm.ppf(q = 1 - p) * (sigma / np.sqrt(n))

if (mu low) (mu up):

rem = 1

else:

rem = 0

m[i, :] = [xbar, low, up, rem]

inside = np.sum(m[:, 3])

per = inside / rep

desc = "There are " + str(inside) + " confidence intervals that contain "

"the true mean (" + str(mu) + "), that is " + str(per) + " percent of the total CIs"

return {"Matrix": m, "Decision": desc}

上述代码读起来很简单,但是循环的时候就很慢了。下面针对上述代码进行了改进,这多亏了?Python专家

import numpy as np

import scipy.stats as ss

def case2(n = 10, mu = 3, sigma = np.sqrt(5), p = 0.025, rep = 100):

scaled_crit = ss.norm.ppf(q = 1 - p) * (sigma / np.sqrt(n))

norm = np.random.normal(loc = mu, scale = sigma, size = (rep, n))

xbar = norm.mean(1)

low = xbar - scaled_crit

up = xbar + scaled_crit

rem = (mu low) (mu up)

m = np.c_[xbar, low, up, rem]

inside = np.sum(m[:, 3])

per = inside / rep

desc = "There are " + str(inside) + " confidence intervals that contain "

"the true mean (" + str(mu) + "), that is " + str(per) + " percent of the total CIs"

return {"Matrix": m, "Decision": desc}

python怎么做大数据分析

数据获取:公开数据、Python爬虫外部数据的获取方式主要有以下两种。(推荐学习:Python视频教程)

第一种是获取外部的公开数据集,一些科研机构、企业、政府会开放一些数据,你需要到特定的网站去下载这些数据。这些数据集通常比较完善、质量相对较高。

另一种获取外部数据的方式就是爬虫。

比如你可以通过爬虫获取招聘网站某一职位的招聘信息,爬取租房网站上某城市的租房信息,爬取豆瓣评分评分最高的电影列表,获取知乎点赞排行、网易云音乐评论排行列表。基于互联网爬取的数据,你可以对某个行业、某种人群进行分析。

在爬虫之前你需要先了解一些 Python 的基础知识:元素(列表、字典、元组等)、变量、循环、函数………

以及,如何用 Python 库(urlpb、BeautifulSoup、requests、scrapy)实现网页爬虫。

掌握基础的爬虫之后,你还需要一些高级技巧,比如正则表达式、使用cookie信息、模拟用户登录、抓包分析、搭建代理池等等,来应对不同网站的反爬虫限制。

数据存取:SQL语言

在应对万以内的数据的时候,Excel对于一般的分析没有问题,一旦数据量大,就会力不从心,数据库就能够很好地解决这个问题。而且大多数的企业,都会以SQL的形式来存储数据。

SQL作为最经典的数据库工具,为海量数据的存储与管理提供可能,并且使数据的提取的效率大大提升。你需要掌握以下技能:

提取特定情况下的数据

数据库的增、删、查、改

数据的分组聚合、如何建立多个表之间的联系

数据预处理:Python(pandas)

很多时候我们拿到的数据是不干净的,数据的重复、缺失、异常值等等,这时候就需要进行数据的清洗,把这些影响分析的数据处理好,才能获得更加精确地分析结果。

对于数据预处理,学会 pandas (Python包)的用法,应对一般的数据清洗就完全没问题了。需要掌握的知识点如下:

选择:数据访问

缺失值处理:对缺失数据行进行删除或填充

重复值处理:重复值的判断与删除

异常值处理:清除不必要的空格和极端、异常数据

相关操作:描述性统计、Apply、直方图等

合并:符合各种逻辑关系的合并操作

分组:数据划分、分别执行函数、数据重组

Reshaping:快速生成数据透视表

概率论及统计学知识

需要掌握的知识点如下:

基本统计量:均值、中位数、众数、百分位数、极值等

其他描述性统计量:偏度、方差、标准差、显著性等

其他统计知识:总体和样本、参数和统计量、ErrorBar

概率分布与假设检验:各种分布、假设检验流程

其他概率论知识:条件概率、贝叶斯等

有了统计学的基本知识,你就可以用这些统计量做基本的分析了。你可以使用 Seaborn、matplotpb 等(python包)做一些可视化的分析,通过各种可视化统计图,并得出具有指导意义的结果。

Python 数据分析

掌握回归分析的方法,通过线性回归和逻辑回归,其实你就可以对大多数的数据进行回归分析,并得出相对精确地结论。这部分需要掌握的知识点如下:

回归分析:线性回归、逻辑回归

基本的分类算法:决策树、随机森林……

基本的聚类算法:k-means……

特征工程基础:如何用特征选择优化模型

调参方法:如何调节参数优化模型

Python 数据分析包:scipy、numpy、scikit-learn等

在数据分析的这个阶段,重点了解回归分析的方法,大多数的问题可以得以解决,利用描述性的统计分析和回归分析,你完全可以得到一个不错的分析结论。

当然,随着你实践量的增多,可能会遇到一些复杂的问题,你就可能需要去了解一些更高级的算法:分类、聚类。

然后你会知道面对不同类型的问题的时候更适合用哪种算法模型,对于模型的优化,你需要去了解如何通过特征提取、参数调节来提升预测的精度。

你可以通过 Python 中的 scikit-learn 库来实现数据分析、数据挖掘建模和分析的全过程。

更多Python相关技术文章,请访问Python教程栏目进行学习!以上就是小编分享的关于python怎么做大数据分析的详细内容希望对大家有所帮助,更多有关python教程请关注环球青藤其它相关文章!

(责任编辑:IT教学网)

更多

推荐网络工程师文章