刚开始遇到的问题
lightgbm默认安装在本地python环境中,而anaconda的python路径与本地路径不同,不能使用本地环境中的包,因此无法在anaconda jupyter notebook导入lightgbm包。
解决方法:
conda install -c conda-forge lightgbm
将本地环境中的lightgbm包拷贝到anaconda的python环境中
以上是一个博主的方法
这个方法我试了但是一直显示solving environment……
所以我就直接在anaconda prompt里pip install 这些包
当你用pandas读取文件报这种错误时,一般是因为你的文件名中带有中文,所以我把数据存放的目录都改成了英文加数字
然后我进行了代码复制粘贴看看有木有报错哈哈哈哈哈终于不报错了!
我开始正式学习之旅了!
首先这些包真的好多好多看得我眼花缭乱
我要先来认识一下他们
numpy矩阵运算
pandas数据分析
首先看step1:
导入函数工具箱
基础工具
import numpy as np
import pandas as pd
import warnings
import matplotlib
import matplotlib.pyplot as plt
import seaborn as sns
from scipy.special import jn
from IPython.display import display, clear_output
import time
- 由于机器学习算法在数据处理过程中大都涉及线性代数的知识,需要用到矩阵操作,Python本身没有处理矩阵的数据类型,因此需要使用附加的函数库。
其中NumPy函数库是Python开发环境的一个独立模块,是Python的一种开源的数值计算扩展工具。
NumPy的发音是【'numpai】,取自”Numeric(数值)“和”Python“的简写。顾名思义,它是处理数值计算最为基础的类库。NumPy参考了CPython(用C语言实现的pyhton及其解释器)的设计,其本身也是由C语言开发而成的。
这种工具可以用来存储和处理大型多维矩阵,比Python自身的列表结构要高效的多。尽管Python的list类型已经提供了类似于矩阵的表示形式,但是NumPy提供了更多的科学计算函数。
NumPy被定位为数学基础库,属于比较底层的Python库,其地位趋向于成为一个被其它库调用的核心库。
在使用NumPy库之前,首先必须导入该函数库,导入方式如下:
import numpy as np - 在Python中,pandas是基于NumPy数组构建的,使数据预处理、清洗、分析工作变得更快更简单。pandas是专门为处理表格和混杂数据设计的,而NumPy更适合处理统一的数值数组数据。
使用下面格式约定,引入pandas包:
import pandas as pd - python开发中经常遇到报错的情况,但是warning通常并不影响程序的运行,而且有时特别讨厌。而通过导入warnings模块,可以利用过滤器来实现忽略告警。代码使用如下:
warnings.filterwarnings('ignore')
- Matplotlib是一个Python 2D绘图库,它可以在各种平台上以各种硬拷贝格式和交互式环境生成出具有出版品质的图形。 Matplotlib可用于Python脚本,Python和IPython shell,Jupyter笔记本,Web应用程序服务器和四个图形用户界面工具包
Matplotlib试图让简单的事情变得更简单,让无法实现的事情变得可能实现。 只需几行代码即可生成绘图,直方图,功率谱,条形图,错误图,散点图等。
为了简单绘图,pyplot模块提供了类似于MATLAB的界面,特别是与IPython结合使用时。 对于高级用户,您可以通过面向对象的界面或MATLAB用户熟悉的一组函数完全控制线条样式,字体属性,轴属性等。
Seaborn和Matplotlib是Python最强大的两个可视化库。
下面我们来认识seaborn - Seaborn是一个免费的可视化库,他提供了一个绘制统计图形的高级接口。
- Scipy是一个用于数学、科学、工程领域的常用软件包,可以处理插值、积分、优化、图像处理、常微分方程数值解的求解、信号处理等问题。它用于有效计算Numpy矩阵,使Numpy和Scipy协同工作,高效解决问题。
Scipy是由针对特定任务的子模块组成:
关于更多的特殊数学函数可参考这位博主的文章https://www.jianshu.com/p/6c742912047f - jupyter notebook 清空输出
from IPython.display import clear_output
clear_output()
display可能是输出图像的用法
- time模块已经很熟悉了
- %matplotlib作用(更具体的解释参考:https://blog.csdn.net/liangzuojiayi/article/details/78183783)
是在使用jupyter notebook 或者 jupyter qtconsole的时候,才会经常用到%matplotlib,也就是说那一份代码可能就是别人使用jupyter notebook 或者 jupyter qtconsole进行编辑的。
而%matplotlib具体作用是当你调用matplotlib.pyplot的绘图函数plot()进行绘图的时候,或者生成一个figure画布的时候,可以直接在你的python console里面生成图像。
截止目前我才看完基础工具……我好菜啊
模型预测
from sklearn import linear_model
from sklearn import preprocessing
from sklearn.svm import SVR #SVM中的回归算法
from sklearn.ensemble import RandomForestRegressor,GradientBoostingRegressor
Sklearn安装要求Python(>=2.7 or >=3.3)、NumPy (>= 1.8.2)、SciPy (>= 0.13.3)。如果已经安装NumPy和SciPy,安装scikit-learn可以使用pip install -U scikit-learn。
具体sklearn学习见另一篇文章
参考https://scikit-learn.org/stable/index.html
sklearn中的回归有多种方法,广义线性回归集中在linear_model库下,例如普通线性回归、Lasso、岭回归等;另外还有其他非线性回归方法,例如核svm、集成方法、贝叶斯回归、K近邻回归、决策树回归等,这些不同回归算法分布在不同的库中。
sklearn preprocessing数据预处理https://www.cnblogs.com/nobbyoucanyouup/p/9015940.html
from sklearn.svm import SVR
http://www.dataivy.cn/blog/regression_with_sklearn/
sklearn.ensemble模块包含了最为流行的提升算法Adaboosting。其核心拟合一系列的弱学习器(如比随机猜想好的模型,小决策树),反复修正数据集的权值。最终的预测结果通过对各个弱学习器投票的方式获得。在每次迭代过程中,对每个样本添加权值w1,w2,w3,…,wn。刚开始每个权值都相等,且都为1/N,因此第一步训练的弱学习器相当于在原始数据上进行训练。在每次成功的迭代当中,样本权值分别被修改,算法也就在加权的数据上进行。在每一步中,被分类错误的样本的权值会相对增加,相反的,被正确分类的权值会减少。因此在迭代过程中,很难预测正确的样本会受到更加的关注,后续的弱学习器会被强制的去针对这些样本。Adaboost可以用于解决分类和回归问题。
在scikit-learn中,RandomForest的分类类是RandomForestClassifier,回归类是RandomForestRegressor,需要调参的参数包括两部分,第一部分是Bagging框架的参数,第二部分是CART决策树的参数。https://blog.csdn.net/chaochaopang0/article/details/78604014
集成学习梯度提升决策树GradientBoostingRegressor回归模型(GBRT?)
数据降维处理
from sklearn.decomposition import PCA,FastICA,FactorAnalysis,SparsePCA
import lightgbm as lgb
import xgboost as xgb
机器学习之sklearn中的降维算法
sklearn中降维算法都被包括在模块decomposition中,这个模块本质是一个矩阵分解模块。
scikit-learn(sklearn)主成分分析(PCA)类库介绍
Principal Component Analysis(PCA)
Independent Component Analysis(ICA)
sklearn中PCA的用法
给小白的链接(FastICA介绍)FastICA
因子分析(Factor Analysis)
Sparse PCA 稀疏主成分分析
机器学习算法之LightGBM
机器学习算法之XGBoost
参数搜索和评价
from sklearn.model_selection import GridSearchCV,cross_val_score,StratifiedKFold,train_test_split
from sklearn.metrics import mean_squared_error, mean_absolute_error
sklearn.model_selection
Sklearn.metrics简介及应用示例
mean_absolute_error(y_true,y_pred,sample_weight=None,
multioutput=‘uniform_average’):
平均绝对误差
mean_squared_error(y_true, y_pred, sample_weight=None, multioutput=‘uniform_average’):均方差
median_absolute_error(y_true, y_pred) 中值绝对误差
敬请关注后续
大二本科在读
笨笨的蜗牛
希望和各位大佬多多交流