机器学习数据分析⽅法 当⼀坨⼏MB或者⼏⼗MB的数据摆在你⾯前,你第⼀件要做的事情就是思考⽤什么⽅法来分析这些数据,其实所谓数据挖掘讲求的就 是如何挖掘数据。⾃从⼊坑kaggle,发现⾃⼰在⾯对数据的时候有时候还是会束⼿⽆策,略显⽆⼒,所以打算长期记录,将各种数据分析的 ⽅式汇集到这篇⽂章⾥。 普通⽅法: 普通⽅法: ⼀、加载数据 ⼀、加载数据 #读取csv data=pd.read_csv("...") #读取excel⽂件 data=pd.read_excel("...") ⽐赛给的数据⼀般都是csv格式的,当然pandas⽀持相当多⽂件的读取 ⼆、⾸先要做的第⼀件事就是清楚这些数据的规模: ⼆、⾸先要做的第⼀件事就是清楚这些数据的规模: 就好⽐买房⼦,要知道的第⼀件事就是房⼦的⼤⼩。那么如何获取数据的⼤⼩呢? print(data.shape) 会输出数据的⾏列数。⾏数就是数据的条数,列数就是数据的特征数,也就是维数。 三、获取每⼀列的数据类型 三、获取每⼀列的数据类型 按照我个⼈的习惯,我⽐较喜欢再看⼀看数据的类型,不过这个也不是必须的,如果维度数量并不是很多的话其实打开⽂件⾁眼看也可以看 得出来。 print(data.dtypes) 然后我们还可以得知数据中各个数据类型的数量(就是数据类型是int的有多少列,是float是多少列,等等等等) print(data.dtypes.value_counts()) 当然可以图形化展⽰ traindata.dtypes.value_counts().plot(kind="barh") 四、整体数据描述 四、整体数据描述 print(data.describe()) print(data.info()) ⾮常常⽤的函数!超级赞,下⾯是我随便找的DF的⽰例 id budget popularity runtime revenue count 3000.000000 3.000000e+03 3000.000000 2998.000000 3.000000e+03 mean 1500.500000 2.253133e+07 8.463274 107.856571 6.672585e+07 std 866.169729 3.702609e+07 12.104000 22.086434 1.375323e+08 min 1.000000 0.000000e+00 0.000001 0.000000 1.000000e+00 25% 750.750000 0.000000e+00 4.018053 94.000000 2.379808e+06 50% 1500.500000 8.000000e+06 7.374861 104.000000 1.680707e+07 75% 2250.250000 2.900000e+07 10.890983 118.000000 6.891920e+07 max 3000.000000 3.800000e+08 294.337037 338.000000 1.519558e+09 <class 'pandas.core.frame.DataFrame'> RangeIndex: 3000 entries, 0 to 2999 Data columns (total 23 columns): id 3000 non-null int64 belongs_to_collection 604 non-null object budget 3000 non-null int64 genres 2993 non-null object homepage 946 non-null object imdb_id 3000 non-null object original_language 3000 non-null object original_title 3000 non-null object overview 2992 non-null object popularity 3000 non-null float64 poster_path 2999 non-null object production_companies 2844 non-null object production_countries 2945 non-null object release_date 3000 non-null object runtime 2998 non-null float64 spoken_languages 2980 non-null object status 3000 non-null object tagline 2403 non-null object 在机器学习领域,数据分析是至关重要的一步,它涉及到对数据的理解、预处理和特征工程,为后续的模型训练提供基础。以下是一些关键的知识点: 1. **数据加载**: - 使用`pandas`库的`read_csv()`或`read_excel()`函数,可以方便地读取CSV和Excel文件中的数据。Pandas支持多种文件格式,使得数据导入非常灵活。 2. **数据规模了解**: - `data.shape`属性用于获取数据集的行数(样本数量)和列数(特征数量),这是理解数据规模的基础,对于资源管理和模型选择有直接影响。 3. **数据类型检查**: - `data.dtypes`返回每列数据的类型,这对于识别数值型、类别型数据至关重要,因为不同类型的变量可能需要不同的预处理方法。 - `data.dtypes.value_counts()`统计各类型数据的列数,有助于了解数据集中数值型、字符串型等数据的比例。 4. **数据描述性统计**: - `data.describe()`提供数据的基本统计信息,包括计数、平均值、标准差、最小值、25%分位数、50%分位数(中位数)、75%分位数和最大值,这对于了解数据分布的中心趋势和离散程度非常有用。 - `data.info()`则显示数据框的概览,包括非空值的数量,这对于检查缺失值很有帮助。 5. **数据可视化**: - 使用`value_counts()`配合`plot()`函数,如`traindata.dtypes.value_counts().plot(kind="barh")`,可以创建柱状图,直观展示数据类型分布。 6. **处理缺失值**: - 数据中可能存在缺失值,通常需要通过填充(如均值、中位数或模式)或删除来处理,以避免影响分析结果。`data.dropna()`和`data.fillna()`是常用的方法。 7. **数据清洗**: - 在数据分析之前,通常需要进行数据清洗,包括去除异常值、处理重复值、转换数据类型等。 8. **特征工程**: - 通过转换、编码、创建新特征等方式提升模型性能。例如,将分类变量进行独热编码,或者对数值变量进行标准化或归一化。 9. **探索性数据分析(EDA)**: - 使用`matplotlib`和`seaborn`等库绘制图表,如直方图、散点图、箱线图,以便深入理解数据的分布、相关性和潜在模式。 10. **模型选择与评估**: - 分析完数据后,根据问题性质选择合适的机器学习模型,如线性回归、决策树、随机森林、支持向量机、神经网络等,并使用交叉验证、网格搜索等方法调优。 - 常用的评估指标包括准确率、精确率、召回率、F1分数、AUC-ROC曲线等,取决于任务是分类还是回归。 以上步骤是数据分析的基本流程,每个环节都对最终的模型效果有重要影响。在实际操作中,还需要根据具体问题进行调整和优化。在Kaggle等竞赛平台,这样的数据分析能力更是不可或缺,能帮助参赛者更好地理解数据并构建高效模型。
- 粉丝: 192
- 资源: 3万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助