“Scikit-learn”的版本间差异
		
		
		
		
		
		跳到导航
		跳到搜索
		
				
		
		
	
|  (→回归) | 无编辑摘要 | ||
| 第6行: | 第6行: | ||
|         $ python -m sklearnex my_application.py |         $ python -m sklearnex my_application.py | ||
| ==数据预处理== | |||
| *scale: 数据归一化 | |||
|  from sklearn.preprocessing import scale | |||
| *数据去除nan数值,可以用impute实现 | |||
|  from sklearn.impute import SimpleImputer | |||
|  imp_mean = SimpleImputer(missing_values=np.nan, strategy='mean') | |||
|  ydata=Spax_PG16.reshape((len(Spax_PG16),1)) #必须二维数组 shape (n_samples, n_features) | |||
|  print(ydata.mean()) #这时候是nan数值 | |||
|  ydata=imp_mean.fit_transform(ydata) #平均值填空 | |||
|  print(ydata.mean()) | |||
|  ydata=ydata.reshape(-1) | |||
| == | ==ANN== | ||
| *MLPRegressor回归,参考 http://www.weixueyuan.net/a/914.html | *MLPRegressor回归,参考 http://www.weixueyuan.net/a/914.html | ||
| ==随机森林== | |||
| * 参考 [https://zhuanlan.zhihu.com/p/51165358] [https://towardsdatascience.com/an-implementation-and-explanation-of-the-random-forest-in-python-77bf308a9b76] | * 参考 [https://zhuanlan.zhihu.com/p/51165358] [https://towardsdatascience.com/an-implementation-and-explanation-of-the-random-forest-in-python-77bf308a9b76] | ||
| ===分类=== | |||
| *sklearn.ensemble import RandomForestClassifier | *sklearn.ensemble import RandomForestClassifier | ||
| *n_estimators:随机森林中「树」的数量。 | *n_estimators:随机森林中「树」的数量。 | ||
| 第21行: | 第32行: | ||
| *bootstrap:是否使用 bootstrapping 来为随机林中的每棵树提供数据。(bootstrapping 是从数据集中进行替换的随机抽样。) | *bootstrap:是否使用 bootstrapping 来为随机林中的每棵树提供数据。(bootstrapping 是从数据集中进行替换的随机抽样。) | ||
| *n_jobs: 可以决定要使用多少处理器内核来运行模型。设置「n_jobs = -1」将使模型运行最快,因为它使用了所有计算机核心。 | *n_jobs: 可以决定要使用多少处理器内核来运行模型。设置「n_jobs = -1」将使模型运行最快,因为它使用了所有计算机核心。 | ||
| ===回归=== | |||
| *sklearn.ensemble.RandomForestRegressor [https://zhuanlan.zhihu.com/p/391338788] | *sklearn.ensemble.RandomForestRegressor [https://zhuanlan.zhihu.com/p/391338788] | ||
| *所有的参数,属性与接口,全部和随机森林分类器一致。仅有的不同就是回归树与分类树的不同,不纯度的指标, 参数Criterion不一致。 | *所有的参数,属性与接口,全部和随机森林分类器一致。仅有的不同就是回归树与分类树的不同,不纯度的指标, 参数Criterion不一致。 | ||
2022年1月17日 (一) 14:52的版本
- python中的机器学习软件库:[1]
- Installed package of scikit-learn can be accelerated using scikit-learn-intelex. More details are available here: https://intel.github.io/scikit-learn-intelex. For example:
       $ conda install scikit-learn-intelex
       $ python -m sklearnex my_application.py
数据预处理
- scale: 数据归一化
from sklearn.preprocessing import scale
- 数据去除nan数值,可以用impute实现
from sklearn.impute import SimpleImputer imp_mean = SimpleImputer(missing_values=np.nan, strategy='mean') ydata=Spax_PG16.reshape((len(Spax_PG16),1)) #必须二维数组 shape (n_samples, n_features) print(ydata.mean()) #这时候是nan数值 ydata=imp_mean.fit_transform(ydata) #平均值填空 print(ydata.mean()) ydata=ydata.reshape(-1)
ANN
- MLPRegressor回归,参考 http://www.weixueyuan.net/a/914.html
随机森林
分类
- sklearn.ensemble import RandomForestClassifier
- n_estimators:随机森林中「树」的数量。
- max_features:每个分割处的特征数。
- max_features = 'sqrt' 这意味着如果有16个特征,则在每个树中的每个节点处,只考虑4个随机特征来拆分节点。
- max_depth:每棵树可以拥有的最大「分裂」数。
- min_samples_split:在树的节点分裂前所需的最少观察数。
- min_samples_leaf:每棵树末端的叶节点所需的最少观察数。
- bootstrap:是否使用 bootstrapping 来为随机林中的每棵树提供数据。(bootstrapping 是从数据集中进行替换的随机抽样。)
- n_jobs: 可以决定要使用多少处理器内核来运行模型。设置「n_jobs = -1」将使模型运行最快,因为它使用了所有计算机核心。
回归
- sklearn.ensemble.RandomForestRegressor [4]
- 所有的参数,属性与接口,全部和随机森林分类器一致。仅有的不同就是回归树与分类树的不同,不纯度的指标, 参数Criterion不一致。
RandomForestRegressor(n_estimators='warn', 
                     criterion='mse', 
                     max_depth=None, 
                     min_samples_split=2, 
                     min_samples_leaf=1, 
                     min_weight_fraction_leaf=0.0, 
                     max_features='auto', 
                     max_leaf_nodes=None, 
                     min_impurity_decrease=0.0, 
                     min_impurity_split=None, 
                     bootstrap=True, 
                     oob_score=False, 
                     n_jobs=None, 
                     random_state=None, 
                     verbose=0, 
                     warm_start=False)
- criterion
- "mse"使用均方误差mean squared error(MSE),"friedman_mse"使用费尔德曼均方误差; "mae"使用绝对平均误差MAE(mean absolute error)
- 对于回归来说,并不存在一个样本要被分到某个类别的概率问题,因此没有predict_proba这个接口。
- 对缺失值的处理参见 [5]